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