一、多维数组概述
在C++中,多维数组是由多个一维数组组合而成的数组。简单来说,多维数组就是一个表格,每个元素都有“行”和“列”两个维度。
多维数组的定义格式为:数据类型 数组名[维度1长度][维度2长度]...[维度n长度];
int arr[3][4]; // 定义一个3行4列的二维数组
int arr2[2][3][4]; // 定义一个2页3行4列的三维数组
二、二维数组的定义和使用
二维数组是最常见的多维数组,它是由若干个一维数组组合而成的,每一个一维数组又具有相同的长度,它在内存中的存储方式是按照行优先的方式存储的。
在C++中定义一个二维数组,我们需要用到两对方括号来表示它的行和列。
二维数组的定义格式为:数据类型 数组名[行数][列数];
#include <iostream>
using namespace std;
int main() {
int a[3][4]; // 定义一个3行4列的二维数组
// 通过循环赋值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
// 输出数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << "\t";
}
cout << endl;
}
return 0;
}
上面的代码中,我们定义了一个3行4列的二维数组,然后通过循环来给数组中的每个元素赋值。最后再通过循环输出数组。
三、二维数组作为形参传递
在C++中,二维数组可以作为函数的参数进行传递。如果要将二维数组作为形参传递,需要显式声明每个维度的长度。在函数内部,可以通过二维数组名和下标来操作数组元素。
#include <iostream>
using namespace std;
void printArr(int a[][4], int row) { // 二维数组作为形参传递
for (int i = 0; i < row; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << "\t";
}
cout << endl;
}
}
int main() {
int a[3][4]; // 定义一个3行4列的二维数组
// 通过循环赋值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
// 作为参数传递
printArr(a, 3);
return 0;
}
上面的代码中,我们定义了一个3行4列的二维数组,然后通过循环来给数组中的每个元素赋值。在主函数中,我们调用了一个名为printArr的函数,并将数组a和行数3作为参数传递给这个函数。printArr中也是通过循环输出二维数组。
四、多维数组的定义和使用
在C++中,除了二维数组,还有更高维度的多维数组。它们的定义和使用原则与二维数组基本相同。
对于一个多维数组,我们需要指定它的每一个维度的长度,如:int a[2][3][4],其中,a是一个三维数组,第一维长度为2,第二维长度为3,第三维长度为4。
下面是一个三维数组的示例代码:
int b[2][3][4];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
b[i][j][k] = i + j + k;
}
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
cout << b[i][j][k] << "\t";
}
cout << endl;
}
cout << endl;
}
上面的代码中,我们定义了一个3维数组b,它的第一维长度为2,第二维长度为3,第三维长度为4。然后通过循环给b中的每个元素赋值,最后再通过循环输出b中的每个元素。
五、总结
本文介绍了C++中多维数组的定义和使用,包括二维数组、多维数组的定义、作为形参传递、以及多维数组的赋值和输出等操作。