C中数组和指针的关系是紧密的,实际上C中的数组就是靠指针定义的
——C Primer Plus(第五版)
多维数组和n级指针紧密联系,这其中涉及的内容比较多,本篇文章讲其中的一部分。
首先,我们声明一个二维数组d_array[2][2]
:
int d_array[2][2];
在一维数组中,数组和指针的一个关系就是array是指向array[0]的指针,这在多维数组中也不例外,例如,对于上述数组d_array就有关系式:
d_array == &d_array[0] //d_array是d_array[0]的指针
但基于现在的上下文,我们是在讨论多维数组,d_array[0]也是一个数组,所以,同样地,也有:d_array[0] == &d_array[0][0] //d_array[0]是d_array[0][0]的指针
由上两个结论,我们可以得出:**d_array == d_array[0][0] //d_array是d_array[0][0]的指针的指针
基于上述对多维数组与指针的关系,我们不难理解下面这一些简单的指针加法:
d_array+1 == &d_array[1] //对d_array+1得到指向下一个数组首元素的指针
d_array[0]+1 == &d_array[0][1] //对d_array[0]+1可以得到d_array[0]数组中第2个元素的地址
本文就先讲到这里