C语言中的数组和指针之间的区别。
C语言中的数组用于存储相同类型的元素,而指针是地址变量,其存储变量的地址。现在,数组变量还具有一个可以由指针指向的地址,并且可以使用指针进行导航。r将指针用于数组的好处有两方面,首先,我们将动态分配的数组的地址存储到指针中,其次,将数组传递给函数。以下是使用数组和使用指向数组的指针的区别。
sizeof()运算符在数组的情况下打印数组的大小,在指针的情况下,打印int的大小。
分配数组变量不能被分配另一个变量的地址,但是指针可以接受它。
第一个值第一个索引值与指针的值相同。例如,array[0]==*p。
迭代数组元素可以使用[]使用索引进行导航,指针可以通过使用指针算术来访问数组元素。例如,array[2]==*(p+2)
范例(C)
#include <stdio.h> void printElement(char* q, int index){ printf("Element at index(%d) is: %c\n", index, *(q+index)); } int main() { char arr[] = {'A', 'B', 'C'}; char* p = arr; printf("Size of arr[]: %d\n", sizeof(arr)); printf("Size of p: %d\n", sizeof(p)); printf("First element using arr is: %c\n", arr[0]); printf("First element using p is: %c\n", *p); printf("Second element using arr is: %c\n", arr[1]); printf("Second element using p is: %c\n", *(p+1)); printElement(p, 2); return 0; }
输出结果
Size of arr[]: 3 Size of p: 8 First element using arr is: A First element using p is: A Second element using arr is: B Second element using p is: B Element at index(2) is: C