黑马程序员技术交流社区

标题: 二维数组指针法遍历的困惑(网上翻出来的,但愿对大家有用) [打印本页]

作者: Will-Z    时间: 2016-1-3 23:11
标题: 二维数组指针法遍历的困惑(网上翻出来的,但愿对大家有用)
二维数组如何用指针表示
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列的数据了.
作者: 明阳天夏    时间: 2016-1-4 12:48
说的挺好的
作者: kegao    时间: 2016-1-4 13:43
加油加油
作者: yuhao1993    时间: 2016-1-6 09:10
赞一个,加油
作者: elainee    时间: 2016-1-6 10:30





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2