在 C++ 中,二维数组和多维数组是数组的扩展形式,用于存储具有多维度结构的数据(如矩阵、表格等)。它们的声明、初始化和访问方式有其特定的语法。
一、二维数组
二维数组可以看作是一个表格,由行和列组成。
定义方式:数据类型 数组名[行数][列数];
例如:
int matrix1[3][4]; // 3行4列的未初始化数组
1、 初始化方式:
int matrix2[2][3] = {
{1, 2, 3}, // 第一行
{4, 5, 6} // 第二行
};
// 可以省略行数,由编译器推断
int matrix3[][3] = {{1, 2}, {3, 4}, {5, 6}};
2、访问元素
通过行索引和列索引访问(索引从 0 开始),
int val = matrix2[1][2]; // 访问第二行第三列的元素(值为6)
matrix2[0][1] = 10; // 修改第一行第二列的元素
3、遍历二维数组
for(int i = 0; i < 2; i++) { // 遍历行
for(int j = 0; j < 3; j++) { // 遍历列
cout << matrix2[i][j] << " ";
}
cout << endl;
}
二、多维数组
C++ 支持三维及以上的多维数组,声明和使用方式是二维数组的扩展。
声明方式
数据类型 数组名[维度1][维度2][维度3]…;
示例:
int arr3D[2][3][4]; // 2个二维数组,每个有3行4列
1、三维数组初始化, 2个"层",每个层是3行4列的二维数组
int cube[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}
}
};
2、 访问元素(层索引、行索引、列索引)
cout << cube[1][0][1]; // 输出6
3、遍历多维数组
需要对应维度数量的嵌套循环:
// 遍历三维数组
for (int i = 0; i < 2; i++) { // 层循环
for (int j = 0; j < 2; j++) { // 行循环
for (int k = 0; k < 2; k++) { // 列循环
cout << cube[i][j][k] << " ";
}
cout << endl;
}
cout << “-----” << endl;
}
3501

被折叠的 条评论
为什么被折叠?



