做此题必须对一维数组比较了解
答案D,二维数组其实是一个一维数组,并且每行也能看成一个一维数组,所以,二维数组也可以看出是多个一维数组组成,并有以下对应关系
第0行首地址,a[0] = &a[0][0]
以此类推,
第i行的首地址 a[i] = &a[i][0];
另外规定 *(a+i) = a[i];故可以看成 a 是a[0],a[1],...a[i ]..,各行首地址的所组成的一维数组的首地址
A正确,就是取a[i][j]元素
B正确,*(a[i]+j) 第i行首地址偏移j,取得是a[i][j]
C正确,由于*(a+i) = a[i]=》*(*(a+i)+j) = *(a[i]+ j) = a[i][j]
D,*(a+i*4+j) = *(a[i*4+j]) = a[i*4+j][0],当(i*4+j) > 3时,就会越界,故引用错误
追问答案是D额= =