C 多维数组
多维数组
在上一章中,你学习了数组,也称为一维数组。它们非常实用,在 C 语言编程中你会经常用到。但是,如果你想以表格形式存储数据,例如具有行和列的表格,则需要熟悉多维数组。
多维数组本质上是一个数组的数组。
数组可以有任意数量的维度。本章我们将介绍最常见的二维数组(2D)。
二维数组
二维数组也称为矩阵(由行和列组成的表格)。
要创建一个二维整数数组,请参考以下示例:
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
第一维度表示行数[2],第二维度表示列数[3]。这些值按行顺序排列,可以这样可视化:
访问二维数组元素
要访问二维数组的元素,必须同时指定行和列的索引号。
此语句访问矩阵数组第一行(0)第三列(2)的元素值。
请记住:数组索引从 0 开始:[0] 是第一个元素,[1] 是第二个元素,依此类推。
更改二维数组中的元素
要更改元素的值,请引用该元素在每个维度中的索引号:
以下示例将更改第一行 (0)和第一列 (0)中元素的值:
示例
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
matrix[0][0] = 9;
printf("%d", matrix[0][0]); // 现在输出 9 而不是 1
亲自试一试 »
遍历二维数组
要遍历多维数组,需要为数组的每个维度编写一个循环。
以下示例输出 矩阵 数组中的所有元素:
示例
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
int i, j;
for (i = 0;
i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("%d", matrix[i][j]);
}
}
亲自试一试 »
三维数组
您还可以声明二维以上的数组:
这将创建一个包含以下内容的三维数组:
2个块(第一个索引)4行/块(第二个索引)3列/行(第三个索引)
何时使用多维数组
当数据以行和列的形式排列时,例如表格、网格或矩阵,多维数组非常有用。
每个额外的维度都会增加一层结构:
- 二维数组(例如
int scores[3][4])非常适合存储分数、游戏棋盘或电子表格等数据 - 三维数组(例如
int cube[2][3][4])可以表示更复杂的结构,例如游戏中的一组表格或关卡

