若有定义“int a[3][4]={0}, *p1=a[1], (*p2)[4]=a;”,下面表达式中与“a[1][1]=1;”不等价的是( )。
A. *(p1+1)=1;
B. p1[1][1]=1;
C. *(*(p2+1)+1)=1;
D. p2[1][1]=1;
查看答案
下面的叙述中正确的是________。
A. 将指向函数的指针作为函数的参数,不符合结构化程序设计的原则
B. 数组名实际上是数组的首地址,所以数组名相当于一个指针变量
C. 若定义了数组a[2][3],则a+1和*(a+1)完全等价
D. 某函数的形参为一个数组,则调用此函数时,对应的实参只能是数组名
若有如下声明和语句:int a[3][3], *p[3], k;for(k=0; k<3;k++) p[k]=&a[k][0];则表达式*(*(p+1)+2)所引用的是()。
A. a[2][0]
B. &a[2][0]
C. a[1][2]
D. &a[1][2]