新手-作业题求教!
若有以下定义,且0<=i<4,则不正确的赋值语句是()
int b[4][6],*p,*q[4];
A a[i]=b[i]; B p=b; C p=b[i]; D q[i]=&b[0][0];
大家解释下,光有答案看不懂!
[解决办法]
看题目
int b[4][6],*p,*q[4];
分析
b: 二维数组(可视为int **),第一维b[i]是指向int[6]的指针(int *)
p: 指向int的指针(int *)
q: 指针数组([]),数组元素是指向int的指针(int *)
看选项
A q[i]=b[i];
q[i]是int *,b[i]也是int *,正确
B p=b;
p是int *,b是int **,错误
C p=b[i];
p是int *,b[i]也是int *,正确
D q[i]=&b[0][0];
q[i]是int *, &b[0][0]是b[0][0]的地址,也是int *,正确
答案:
所以选B