帮忙看一下,C语言的声明

来源:百度知道 编辑:UC知道 时间:2024/05/29 21:19:14
int *((*p)[3])[4];
int *(*p)[3][4];
int **p[3][4];

这三个分别声明的是什么?

好复杂啊。

你最好先搞清楚:
int *p[3]; ////这个指针数组,有3个元素,每个元素都是int *型指针。
int (*p)[3];////这个指向数组的指针,指向int [3]类型的数组

同理,你可以理解下面的了吧。
int *((*p)[3])[4];
int *(*p)[3][4];
int **p[3][4];

int *((*p)[3])[4];
int *(*p)[3][4];
int **p[3][4];
其实都差不多,只是从空间分配来说不一样,第一,二个定义,里面的元素是不连续的。而第三个是连续的。。。