指针指向二维数组,类似于一层一层的寻址。
先是指向第几行的指针,然后是第几列的指针,最后才是元素的值。
所以使用指针指向二维数组,指针运算符"*"的理解与使用很重要。
int a[2][3];
int *p=&a;
p :为数组a的首地址
*(p+n) :为第(n+1)行的首地址
*(p+n)+m :为第(n+1)行第(m+1)列的地址
*(*(p+n)+m) :为第(n+1)行第(m+1)列的值
先是指向第几行的指针,然后是第几列的指针,最后才是元素的值。
所以使用指针指向二维数组,指针运算符"*"的理解与使用很重要。
int a[2][3];
int *p=&a;
p :为数组a的首地址
*(p+n) :为第(n+1)行的首地址
*(p+n)+m :为第(n+1)行第(m+1)列的地址
*(*(p+n)+m) :为第(n+1)行第(m+1)列的值