有以下说明和语句,int a[4][3]={0}, *p[4], **pa, i, j;pa=p; 如果0<=i<4, 0<=j<3

有以下说明和语句,int a[4][3]={0}, *p[4], **pa, i, j;pa=p;
如果0<=i<4, 0<=j<3,则以下各组正确表示a数组元素的地址的是( )
A.
&a[j]、&p[i]、*(*(pa+i)+j)

B.
&a[i][j]、p[i]+j、pa[i][j]

C.
**pa、a、p

D.
*(pa+i)+j、p[i]、*(p+i)+j

D的三项都是地址,所以选D。
A——&a[j]是地址的地址、&p[i]是地址的地址、*(*(pa+i)+j)是元素值
B——pa[i][j]是元素值
C——**pa是元素值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-26
其实在c中p[i]等价于*(p+i),数组表示法只是一种简写.p[i][j]等价于(*(p+i))[j]==*(*(p+i)+j)你也可以反着写:p[n]==n[p]因为*(p+n)==*(n+p)你执行了p=a;因此p的值等于a的值.所以p[i][j]==a[i][j]你的理解是正确的.追问

所以选啥