若有定义语句:inta[2][3],*p[3];,则以下语句中正确的是()。A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D
若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是()。
A.p=a;
B.p[0]=a;
C.p[0]=&a[1][2];
D.p[1]=&a;
C
解析:选项A中,p为数组名,其值是不能被改变的,故非法;选项B中,p[0]的类型是int*,而a是二维数组名(类型为int[][3]),两者无法赋值,故非法:选项C中,p[0]为int型指针,&a[1][2]是int型变量的地址,可以合法赋值;选项D中,p[1]是int型指针,而&a是二维数组的地址(类型为int(*)[2][3]),两者无法赋值,故非法。所以本题应该选择C。