C中的数组指针和指针数组

时间:2013-03-28 08:50:06

标签: c arrays pointers

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

2 个答案:

答案 0 :(得分:2)

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

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

int* pointers_array[10];

答案 1 :(得分:1)

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

 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将达到相同的值。但是,请谨慎使用不同的方法。 数组和p之间的区别是

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

指针数组只表示你的数组项是指针(但是指的是什么类型)。

 char* parray[20];

这个数组包含20个指向“char”的指针或依赖于对“strings”的解释

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