📜  在C C++中初始化多维数组(1)

📅  最后修改于: 2023-12-03 15:07:52.001000             🧑  作者: Mango

在C/C++中初始化多维数组

在C/C++中,我们可以通过以下方式来初始化多维数组:

1. 一维数组的初始化

一维数组初始化很简单,就是通过花括号{}将数组的元素包起来,每个元素之间用逗号分隔。

例如:

int arr[5] = {10, 20, 30, 40, 50};
2. 二维数组的初始化

二维数组初始化也很简单,通过两层花括号{}{}将数组的元素包起来,每个元素之间用逗号分隔。

例如:

int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

在上面的例子中,arr是一个3行4列的二维数组,它的元素按照行列的顺序初始化,也就是arr[0][0]=1,arr[0][1]=2,...,arr[2][3]=12。

另外,我们也可以只对部分元素进行初始化,例如对第一行进行初始化:

int arr[3][4] = {{1,2,3,4},};

在上面的例子中,数组arr的第一行元素被初始化了,第二行和第三行的元素被置为0。

3. 三维数组的初始化

三维数组的初始化原理同二维数组,通过三层花括号{}{}{}将数组的元素包起来,每个元素之间用逗号分隔。

例如:

int arr[2][3][4] = {
    {{1,2,3,4},{5,6,7,8},{9,10,11,12}},
    {{13,14,15,16},{17,18,19,20},{21,22,23,24}}
};

在上面的例子中,arr是一个2行3列4层的三维数组,它的元素按照行列层的顺序初始化,也就是arr[0][0][0]=1,arr[0][0][1]=2,...,arr[1][2][3]=24。

另外,我们也可以只对部分元素进行初始化,例如对第一层的第一个元素进行初始化:

int arr[2][3][4] = {
    {{1}},
    {{0}}
};

在上面的例子中,数组arr的第一层第一个元素被初始化了,其余的元素被置为0。

4. 初始化器的省略

在初始化多维数组时,我们也可以省略初始化器中最后一维的长度,此时编译器会根据初始化器中元素的个数推断出最后一维的长度。

例如:

int arr[][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

在上面的例子中,编译器会将数组arr的长度推断为4行3列。

5. 初始化为0

C/C++中,我们还可以使用如下方法将一个多维数组初始化为0:

int arr[3][4] = {0}; // 将所有元素初始化为0
int arr[3][4] = {{0}}; // 将第一行元素初始化为0,其余元素置为0
int arr[3][4] = {{0},{0},{0}}; // 将所有元素初始化为0

以上就是C/C++中初始化多维数组的方法。