二维数组在内存中的存放方式
二维数组在概念上是二维的,而存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列,即放完一行之后顺次放入第二行。另一种是按列排列,即放完一列之后再顺次放入第二列。
在C语言中,二维数组是按行排列的。
例如: int [3][4];
其二维数组示意图如图1所示:
图1 a[3][4]二维数组示意图
在图1中,按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占4个字节的内存空间,所以每个数组元素均占有4个字节。
假设数组a的起始地址为2000,则该二维数组在内存在的存放方式如图2所示。
图2a[3][4]二维数组的存放方式