C语言int (*p)[4]和int *p[4]区别

int *p[4] 可以当做一个数组使用,
而int (*p)[4] 可以当数组吗,
两个区别是什么int (*p)[4];如何使用呢。

int *p[4], 是一个长度为4的指针数组,数组的元素为int*;
sizeof(p) => 4*4 = 16;(32位系统一个指针4字节)
用法:*(p[0])
int (*p)[4] 是一个指向长度为4数组的指针,即int(*)[4];
其本质是一个指针,如在32为系统上,sizeof(p) => 4
用法:(*p)[0].
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-05
第一个是指针数组,第二个是数组指针。区别是他是一个指针还是多个指针。
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

int (*p)[4]就相当于int p[][4],它就是一个二维数组的指针,可以指向一个第二维度为4的二维数组本回答被网友采纳
相似回答