若有定义语句:
int a[2][3],*p[3];
则以下语句中正确的是______。
A.p[0]=&a[1][2];
B.p[0]=a;
C.p=a;
D.p[1]=&a;
参考答案:A
解析: 本题考查的知识点是:二维数组和指针数组。无论一个数组有多少维或者是否含指针类型,该数组最终都可以被看做一个比较特殊的一维数组。例如本题中的int a[2][3]可以看作元素为int[3](即包含3个int型元素的一维数组),包含2个这样元素的一维数组;而int *p[3]则可以看作元素为int*,包含3个这样元素的一维数组。选项C中,p为数组名,其值是不能被改变的,故非法;选项B中,p[0]的类型是int*,而a是二维数组名(类型为int[][3]),两者无法赋值,故非法;选项A中,p[0]为int型指针,&a[1][2]为元素a[1][2]的地址,所以选项A符合题意。