-3

C中的数组指针和指针数组有什么区别?

4

2 回答 2

2

数组指针指向数组,而指针数组是指针数组,它可能指向某个地方。

int array[10]; // `array` is an array pointer

int* pointers_array[10];
于 2013-03-28T08:51:44.130 回答
2

数组指针是指向数组的指针。您可以使用指针算法访问项目,反之,您可以使用指针以数组方式访问项目。

 int array [20];
 int a = *(array + 10);
 int b = array[10];

 int *p;
 p = array;

 int c = *(p + 10);
 int d = p[10];

所有方法都将起作用,a、b、c、d 将达到相同的值。但是,请谨慎使用不同的方法。array 和 p 的区别是

 p ++; // allowed
 array ++; // fail

指针数组只是意味着您的数组项是指针(但是指向什么类型)。

 char* parray[20];

该数组包含 20 个指向“char”的指针或取决于对“strings”的解释

所以 parray 是一个char 指针数组的数组指针

于 2013-03-28T09:10:57.253 回答