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