多维数组通过指定多个维度定义,如二维数组int arr[3][4]表示3行4列的矩阵,可初始化部分或全部元素,未指定值自动为0;三维数组如int cube[2][3][4]用于立体结构,初始化需匹配嵌套层次;c++中数组维度须为编译时常量,不可直接用变量定义大小,推荐使用std::vector<std::vector<int>>实现动态多维数组;元素通过下标访问,索引从0开始,如arr[0][0]或cube[0][1][2]。

在C++中,多维数组可以通过指定多个维度的大小来定义。最常见的形式是二维数组,但也可以定义三维或更高维的数组。
二维数组的定义方法
二维数组可以看作是“数组的数组”,通常用于表示表格或矩阵。
语法:
数据类型 数组名[行数][列数];
例如,定义一个3行4列的整型二维数组:
立即学习“C++免费学习笔记(深入)”;
int arr[3][4];
你也可以在定义时进行初始化:
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
如果初始化列表不完整,未指定的元素会自动初始化为0。
三维及更高维数组的定义
三维数组常用于表示立体数据结构,如体积、立方体等。
语法:
数据类型 数组名[维度1][维度2][维度3];
例如,定义一个2×3×4的三维整型数组:
int cube[2][3][4];
也可以在声明时初始化:
int cube[2][3][4] = {
{{1,2},{3,4},{5,6}},
{{7,8},{9,10},{11,12}}
};
注意:初始化时要确保嵌套层次与数组维度一致。
使用变量定义动态维度(非常规方式)
C++中普通数组的维度必须是编译时常量。不能直接使用变量定义固定数组的大小:
// 错误示例:
int rows = 5;
int cols = 4;
int arr[rows][cols]; // 编译错误(除非使用变长数组扩展)
解决方法:
- 使用常量表达式定义尺寸:const int N = 5;
- 使用std::vector实现真正的动态多维数组,更推荐:
std::vector<std::vector<int>> matrix(3, std::vector<int>(4));
访问多维数组元素
通过下标访问元素,索引从0开始:
arr[0][0] = 10; // 设置第一行第一列的值
int value = arr[1][2]; // 获取第二行第三列的值
对于三维数组:
cube[0][1][2] = 100;
基本上就这些。多维数组的定义关键在于理解维度顺序和初始化方式,实际使用中建议结合具体需求选择静态数组或更灵活的容器。


