读书人

生手-作业题求教

发布时间: 2013-01-07 10:02:24 作者: rapoo

新手-作业题求教!
若有以下定义,且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

读书人网 >C++

热点推荐