指针数组:首先它是一个数组,数组的元素都是指针,数组占多少字节由数组本身决定。它是“存储指针的数组”的简称。
数组指针:首先它是一个指针,它指向一个数组。在32位系统下用于是4个字节,至于它指向的数组占多少个字节不知道。它是“指向数组的指针”的简称。
例:
int *p1[10];
int (*p2)[10];
判断上面那个是数组指针还是指针数组,先明白优先级顺序
“[]”的优先级大于“*”,p1先与[]结合构成数组,数组名为p1,int *修饰的是数组的内容,即修饰的是数组里面的每一个元素。
所以这是一个数组,其包含10个指向int类型数据的指针,即指针数组。
对于p2,()的优先级高于[],*号和p2构成一个指针的定义,即指针的变量名为p2,int 修饰的是数组的内容,即数组中的每一个元素。数组在这里并没有名字,是一个匿名数组。所以p2是一个指针,它指向一个包含10个int型数据的数组,即数组指针。