对于 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
浙公网安备 33010602011771号