c语言,二维数组问题:若有定义:int b[4][6],*p,*q[4];且0≤i<4,则不正确的赋值语句是?

c语言,二维数组问题:若有定义:int b[4][6],*p,*q[4];且0≤i<4,则不正确的赋值语句是(A) q[i]=b[i];(B) p=b;(C) p=b[i];(D) q[i]=&b[0][0]应该选怎么做,跪求具体解析。

p=b;不正确,选B。

b是一个二维数组,可以把它看成是由4个有6个元素的一维数组组成的。
则b[i]就是第i+1个一维数组的数组名,而数组名表示的是数组首元素的地址。所以,b[i]即&b[i][0],它是一个int*型的地址,而q是一个数组,每个元素是一个int*型的指针。则b[i]当然可以赋给q[i]与p,所以,A、C正确。
自然,D肯定是正确,所以选B。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-01
葫芦侠有相关回答哦
相似回答