9.3.4 回顾二维数组和多维数组的概念

请回顾一下,在数组章节中讲解了二维和多维数组,以二维数组为例,二维数组带两个下标,例如针对a[3][4]这个二维数组,可以把a看成是一个一维数组,这个一维数组有三个元素:a[0]、a[1]、a[2],每个元素(都看成是一个一维数组名)又是一个包含4个元素的一维数组,参考图6.4所示。

所以,inta[3][4]就相当于定义了12个元素(3行4列),第一维下标能引用的范围是0~2,第二维下标能引用的范围是0~3,所以整个二维数组能够引用的元素如下,可以参考图6.5所示:

在C语言中,二维数组元素排列的顺序是按行存放的,即在内存中先存放第一行元素,再存放第二行元素,以此类推,所以,inta[3][4]这个二维数组在内存中存放起来应该是如图6.6所示,同样要注意,二维数组以及更多维数组在内存中都是连续存放的。

而对于多维数组,第一维下标变化最慢,最右边维度的下标变化最快。例如,对于数组floata[2][3][4];在内存中的排列顺序应该是这样: