一、二维数组:
有些数据需要通过两个数值进行定位,如某班级某学号的学生,这时候就要用到二维数组,二维数组也叫做矩阵。
二、定义与初始化:
定义:形式——类型说明符 数组名[常量表达式][常量表达式]
eg.int a[2][3]={50,60,70,80,90,100}
上述语句定义了一个二行三列的二维数组,元素在其中的存放位置如图所示
[0][0] 50 | [0][1] 60 | [0][2] 70 |
[1][0] 80 | [1][1] 90 | [1][2] 100 |
1.由这个例子我们可以看出,二维数组中元素的排列顺序是按行排序的,也就是说,先在第一行从左到右存入元素,直到第一行的内存被占满后,从第二行开始从左到右存入元素,以此类推。
2.二维数组可以看成是一种特殊的一维数组,只不过这个一维数组的元素同样也是一维数组。如上例中的二维数组可以看作是包含了a[0]、a[1]两个元素。其中,a[0]这个元素又包含a[0][0]、a[0][1]、a[0][2]三个元素,a[1]这个元素包含a[1][0]、a[1][1]、a[1][2]三个元素。
3.需要注意的是,在内存中元素的排列时线性的,而不是二维的。
初始化:二维数组的初始化较为灵活,既可以分行赋初值,也可以直接按内存的存放顺序赋初值,还可以只对部分元素赋初值。
1.分行赋初值:示例
int a[2][3]={{50,60,70},
{80,90,100}};
这种赋值方式比较直观清晰。
2.直接赋初值:示例
int a[2][3]={50,60,70,80,90,100}
3.对部分元素赋初值:
二维数组对部分元素赋初值时,规则与一维数组相同,但有以下注意事项:当对所有元素进行初始化时,可以省略第一个方括号中行的数值,但不能省略方括号中列的数值。(即:允许a[ ][4],而不允许a[4][ ])
如果不对所有元素赋初值,则系统自动赋值为0。