📅  最后修改于: 2023-12-03 15:07:52.001000             🧑  作者: Mango
在C/C++中,我们可以通过以下方式来初始化多维数组:
一维数组初始化很简单,就是通过花括号{}将数组的元素包起来,每个元素之间用逗号分隔。
例如:
int arr[5] = {10, 20, 30, 40, 50};
二维数组初始化也很简单,通过两层花括号{}{}将数组的元素包起来,每个元素之间用逗号分隔。
例如:
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。
三维数组的初始化原理同二维数组,通过三层花括号{}{}{}将数组的元素包起来,每个元素之间用逗号分隔。
例如:
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。
在初始化多维数组时,我们也可以省略初始化器中最后一维的长度,此时编译器会根据初始化器中元素的个数推断出最后一维的长度。
例如:
int arr[][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
在上面的例子中,编译器会将数组arr的长度推断为4行3列。
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++中初始化多维数组的方法。