二维数组如何用指针表示
int b[2][5]
用下标方法表示如下
int b[i][j]
假设i = 0; j = 0,1,2,3,4;
用指针方法表示
* (* (b+i)+j) 演变 * (b[i]+j) 演变 (* (b+i) ) [j]
//为什么要加2个*号,解释如下
二维数组可以看成是指针的指针,b[][] = **b;
比如b[2][5];
它是一个2行5列的二维数组,也可以看成是二级指针,一级存放的是行指针,然后每个行指针里面其实又是指向了5个列元素.
*(*(b+i)+j),*(b+i)是先取行指针,然后+j偏移到所要的列,然后*取值就得到i行j列的数据了. |
|