二维数组的初始化方法
在C语言中,二维数组可以看作是特殊的一维数组,每个元素由一个一维数组组成。本文将介绍关于二维数组初始化的方法。 定义二维数组 定义二维数组的方法与一维数组相似,例如:int a[3][3],这样就
在C语言中,二维数组可以看作是特殊的一维数组,每个元素由一个一维数组组成。本文将介绍关于二维数组初始化的方法。
定义二维数组
定义二维数组的方法与一维数组相似,例如:int a[3][3],这样就定义了一个3行3列的二维数组。
内存中的存储方式
需要注意的是,虽然我们可以直观地将二维数组表示为行列关系,但在内存中,二维数组的各个元素是连续存放的,而不是二维的,是线性的。
分行赋值初始化
初始化二维数组可以分行给元素赋值,例如:
int a[3][3] {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
连续赋值初始化
也可以将所有数据写在一个花括号内,按照元素在内存中的排列顺序对各元素赋初值:
int a[3][3] {{1, 2, 3, 4, 5, 6, 7, 8, 9}};
但是这种方法在数据较多时会写成一大片,容易遗漏,不方便检查。
部分赋值初始化
二维数组也可以只对部分元素赋值。例如:
int a[3][3] {
{1},
{4},
{7}
};
或者只对某几行赋值:
int a[3][3] {
{1, 2},
{4},
{7}
};
省略第一维长度的赋值
如果想要对全部元素都赋初值,可以省略第一维的长度,但第二维的长度不能省去。例如:
int a[][3] {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
同时也可以只对部分元素赋值,而省略第一维的长度,但应该分行赋值。