若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是

A)p=a; b)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;

应该选C。

p是一个指针数组,它有四个元素,每个都是一个指向int型的指针。

a是一个二维数组,它的每个元素都是int型的。

A的错误是因为p是常量(数组名都是指针常量),不可以被赋值。而且p和a的类型也不一致。

BCD都是对p的元素赋值,这是可以的,等号右边应当是一个int型数据的指针(即地址)。C选项中a[1][2]是a的一个元素,是一个int型值,&取了它的地址,所以是正确的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-01
int* p[3]是定义了一个大小为3的数组指针,也就是定义了三个int型的指针。
p代表指针数组的首地址,相当一个二维指针。
p[0],p[1],p[2]代表一个int型指针
C是对的
第2个回答  2009-03-01
b
第3个回答  2009-03-01
应该选b
相似回答