int (*p)[4] 和 int *p[4]的区别?

请举例说明,谢谢

int (*p)[4] 和 int *p[4]的区别为:性质不同、长度不同、指向不同。

一、性质不同

1、int (*p)[4]:int (*p)[4]是个指针,指向有四个int类型数据的数组。

2、int *p[4]:int *p[4]是个数组,每个元素都是一个int *指针。

二、长度不同

1、int (*p)[4]:int (*p)[4]的长度为1,为一个数组。

2、int *p[4]:int *p[4]的长度为4,有四个元素空间。

三、指向不同

1、int (*p)[4]:int (*p)[4]的指针指向明确,为数组的逻辑地址位置。

2、int *p[4]:int *p[4]每个指针指向哪里需要程序中后续再定义。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-07
int (*p)[4]为指向数组的指针,即p为指向包含4个元素的一维数组的指针变量;
int *p[4] 为指针数组,定义指针数组p,它由4个指向整型数据的指针元素组成;

参考资料:谭浩强 C++

本回答被提问者和网友采纳
第2个回答  2012-04-13
int (*p)[4] 数组指针是指针,指针指向一数组。
int *p[4] 指针数组是数组,数组里面放指针。
第3个回答  2012-04-13
前面的数组的元素是指针;
后面的是一个长度为4的指针数组,就同int型的数组一样了
相似回答