int *p[2];是指针数组,即p是一个长度为2的数组,数组元素是int*型指针;
int (*p)[2];是数组指针,p是个指针,指向一个长度为2的int型数组.
二维数组,比如int a[3][2],实际上可以看作长度为3的数组,每个数组元素是长度为2的int型数组.因此指向二维数组元素的指针需要int (*p)[2].
int *p[2];和int (*p)[2];
都是语句,先看下语句中的运算符。。
‘*’要比‘(’、‘)’、‘[’、‘]’的优先级低,
所以int *p[2];中的p先与“[]”结合是个数组。然后才是个放指针的数组。 p[2]是个数组。
int (*p)[2];中P先与“*”结合是个指针变量,然后才是指向有2列的数组的指针。 P是个指针。
阅读(1207) | 评论(0) | 转发(0) |