第1个回答 推荐于2017-09-08
(*p)[2] 是一个数组指针,指向含2个元素的一维数组。
对于为什么是一个数组指针,而不是一个指针数组的解释如下:
( )优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是2。
指针数组的定义如下:
int *p[n] // 定义了一个指针数组,该数组中每个元素(共有n个元素)都是一个指针,至于每个指针所指向的地址就要看后面的程序定义了。
对于*p[n]为什么是指针数组解释如下:
[ ]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。
第2个回答 2010-07-23
int (*p)[2]是数组指针,如果写成int *p[2]则是大小为2的指向整型的指针数组。
为什么需要括号呢,因为下标运算符[]的优先级高于运算符*。
第3个回答 2010-07-23
上边实际上是 int (*p)[2];是声明了一个数组指针。是指向数组的一个指针,如int (*p)[10] 表示一个指向10个int元素的数组的一个指针。
第4个回答 2010-07-23
错了吧,这样看的话p应该是个行指针
(*p)是转成列指针,(*p)[2]应该是取第三列的值
a[3][2]的话没有第三列的
应该把完整一点的代码贴上来再看