1
C语言程序设计
1.5.2.1 4.2.1 二维数组的定义

4.2.1 二维数组的定义

二维数组是由有两个下标的数组元素组成的,其定义格式如下:

  类型标识符 数组名[常量表达式1][常量表达式2]

按照这个格式,可将例4-4用于描述冰山高度的数组定义为

  int ice[5][7];

这个声明定义了一个名为ice的数组,它含有5个一维数组,每个一维数组含7个元素,一共35个元素,这些元素都是整型变量。

前面讲述的一维数组是带下标的变量,下标只有一个;而二维数组是带有两个下标的变量。在定义时,常量表达式1规定了一维数组的个数,常量表达式2规定了一维数组中元素的个数,而二维数组的第一个下标规定了一维数组的序号,第二个下标规定了一维数组中元素的序号。

为了便于理解,可将二维数组视为行列式或矩阵,第一个下标为行号,第二个下标为列号,比如上面定义的ice描述了一个5行7列的表格。与一维数组相同,下标都是从0开始编号的。

在计算机中二维数组的元素是按行存储的,即在内存中,先存储二维数组第一行的元素,再存储第二行的元素,依此类推。

如前面定义的ice数组,就是先存储ice[0]的7个元素,再存储ice[1]的7个元素,……如图4.2.2所示。

img345

图4.2.2 二维数组元素的存放顺序

二维数组一经定义,系统就为其分配了连成一片的存储区域,保证装下数组定义时限定的所有数组元素。这片存储区域有一个首地址,ice即为这个首地址的符号地址。