二维数组如何用指针表示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个*号,请懂的朋友解释下
2019-05-28
二维数组如何用指针表示
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列的数据了.
二维数组可以看成是指针的指针,b[][] = **b;
比如b[2][5];
它是一个2行5列的二维数组,也可以看成是二级指针,一级存放的是行指针,然后每个行指针里面其实又是指向了5个列元素.
*(*(b+i)+j),*(b+i)是先取行指针,然后+j偏移到所要的列,然后*取值就得到i行j列的数据了.