若有定义语句:int a[2][3],*p[3];则下列语句正确的是Ap=a;Bp[0]=aCp[0]=&a[1][2];Dp[1]=&a;这种题型要怎么解题那D为什么不可以
问题描述:
若有定义语句:int a[2][3],*p[3];则下列语句正确的是
Ap=a;Bp[0]=aCp[0]=&a[1][2];Dp[1]=&a;
这种题型要怎么解题
那D为什么不可以
答
答案是 C
解决这类题型首先要分清类型.
A错,虽然 p 的类型是 (int **) ,a 的类型是 (int**),但是数组名代表的地址也不能改变.
B错,因为 p[0]的类型是 (int *),a 的类型是 (int**).
C对,p[0] 的类型是 (int*),&a[1][2]的类型也是 (int*).
D错,p[1]的类型是 (int*), &a 的类型是 (int***).