来看一道题
定义:int a[2][3],下面选项中能表示a[1][1]的是
A: *(*a + 4) B:**(&a[1] + 1) C:**(a + 4) D:*(a[0] +5) E:*(&a[0][0] + 4) F:*(*(a+1) + 1)
答这题的关键是要理解指向指针的指针,这里a就是一个指向int型数据的指针的指针,从而*a是指向int型数据的指针。*a就是a[0], *(a+1)就是a[1]……
对于A, *a相当于a[0]这个指针,也即&a[0][0],那么这个指针加4自然就是a[1][1]。
对于B, &a[1]就是指针的指针,指向a[1][0],对于这个加1后的结果就应是a[2][0]
对于C, 相当于a[4][0],自然错
对于D, 见A
对于E, &a[0][0] 即为a[0],加4后即为a[1][1]
对于F, *(a+1)为a[1],加1后即为a[1][1]