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

\u82e5\u6709\u8bf4\u660e\uff1aint n=2,*p=&n,*q=p;\u5219\u4ee5\u4e0b\u975e\u6cd5\u7684\u8d4b\u503c\u8bed\u53e5\u662f


int a[2][3],*p[3];
\u56e0\u4e3a[]\u7684\u4f18\u5148\u7ea7\u6bd4*\u9ad8\u6240\u4ee5p\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u8fd9\u4e2a\u6570\u7ec4\u5b58\u653e\u7684\u662f\u6307\u5411\u6574\u6570\u7684\u6307\u9488\u3002
\u5373\u5b58\u653e\u7684\u662f\u4e00\u4e2a\u6574\u6570\u53d8\u91cf\u7684\u5730\u5740\u3002
\u800c&a[1][2]\u6b63\u597d\u662f\u4e00\u4e2a\u6574\u6570\u7684\u5730\u5740\u3002
\u6240\u4ee5
p[0]=&a[1][2]\u6b63\u786e\u3002
\u8865\u5145\u56de\u7b54\uff1a
\u56e0\u4e3aD
int *p[3];
p\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u8fd9\u4e2a\u6570\u7ec4\u5b58\u653e\u7684\u662f\u6574\u6570\u6307\u9488\u3002
p[1]\u5c31\u662f\u4e00\u4e2a\u6574\u6570\u6307\u9488\u3002
\u4f46\u662f&a\u5e76\u4e0d\u662f\u6574\u6570\u6307\u9488\uff0c\u5b83\u662f\u4e00\u4e2a\u6570\u7ec4\u7684\u6307\u9488\u3002

应该选C。

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

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

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

BCD都是对p的元素赋值,这是可以的,等号右边应当是一个int型数据的指针(即地址)。C选项中a[1][2]是a的一个元素,是一个int型值,&取了它的地址,所以是正确的。

int* p[3]是定义了一个大小为3的数组指针,也就是定义了三个int型的指针。
p代表指针数组的首地址,相当一个二维指针。
p[0],p[1],p[2]代表一个int型指针
C是对的

b

应该选b

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网