C语言--二维数组与指针浅谈

来源:互联网 发布:淘宝修改头像失败 编辑:程序博客网 时间:2024/05/17 02:42

假设定义一个数组:int  a[3][3]; 其如图


可以把a[3][3]看成三个行一维数组,即:a[0]、a[1]、a[2],其每一个一维数组可以看成数组名分别为a[0]、a[1]、a[2],则等效为一维数组。例a[0],其数组名a[0]就是其首地址,则a[0]等价于&a[0][0],a[0]+1等价于&a[0][1],因此得到下图


因为二维数组名a代表了二维数组的首地址,即:a⇔&a[0]、a+1⇔&a[1],则

*a⇔*(&a[0])⇔a[0]⇔a[0][0],则*a⇔a[0][0]、*a+1⇔a[0][1]、*(a+1)⇔a[1][0],如下图:


0 0