c语言问题!int *p[4]和int (*p)[4]有什么区别?

如题所述

int *p[4],就是p本质上是个数组,只不过数组中的每个元素都是指针
int (*p)[4],就是p本质上是个指针,指针指向一个一维的数组

这种题的话,其实可以先根据运算符的优先级、结合性,先确定标识符本质上是一个什么,然后再去补充

例如,int *p[3],先根据优先级,等效于*(p[3]),所以p本质上是一个有三个元素的数组;那么数组的每个元素又是什么呢?是一个指针;那指针指向的又是什么呢?是指向一个int型的数据;所以整理一下就是p是一个有三个指向int数据的指针的数组,本质上就是一个数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-30
int *p[4]是定义了一个四个元素的数组,元素类型为int的指针
后一个是定义了一个int指针,指向内存中4个int大小一块区域的首地址,以四个int单位
如p++,是移动4
第2个回答  2014-04-02
前者指针数组,后者数组指针
相似回答