对于 int a[2][3]  a 为二维数组的数组名 ,a是行地址  a = &a[0] a+1 = &a[1]  

而指针p相当于列指针,p+1 是跳过一个元素  a+1是跳过一行 三个元素,所以p = a 这个赋值不成立,不能把航指针,赋值给列指针;

 

a  &a[0]  &a[0][0]    p  &a[0][1]      p+1 &a[0][2]    p+2

a+1   &a[1]  &a[1][0]

 p+3

&a[1][1]

p+4

&a[1][2]

p+5

 



 

*(*(a+i)+j)  = a[i][j]

*(a+i) 由行指针变成列指针   

*(a+i)+j = & a[i][j]

*(*(a+i)+j) 取值操作 变成a[i][j]

 

 

TYPENAME :NAME=value 

比如:char *p  int *p  

int[3] *p       写成:int *p[3] 数组指针  指向数组的指针 ,p+1 跳转int[3]  此时  p=a