1. 什么是二维数组 #
其实所谓的二维数组,就是“数组”的数组。
如下图,二维数组中的内一个元素,都是一个数组。
需要注意的是,在C++中,二维数组中,作为元素的每个数组的长度,是一样的。
其实呢,二维数组在生活当中,也是非常常见的。
1.1 定义二维数组 #
假设我们要定义一个这样的二维数组
1 2 3 4 11 12 13 14 21 22 23 24
请注意下图中的四种写法。
二维数组的定义中,第二个括号的数字不可省略,表示“数组元素”的长度
一般习惯上,我们将一行的值,作为二维数组的一个元素
比如:如上所示,则我们将第一行的 1 2 3 4 作为我们二维数组的第一个元素;第二个元素为 11 12 13 14;以此类推。
一般,我们建议,在定义时,要将所有的 [ ] 中的数字都填上。
1.2 遍历二维数组 #
请试一试,写程序遍历输出上述的二维数组。
/* 请编程完成后,查看示例程序。 */
示例程序:
#include <iostream> using namespace std; int main() { int matrix[3][4] = {1,2,3,4,11,12,13,14,21,22,23,24}; // 方法一 for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) cout << matrix[i][j] << ", "; cout << "\n"; } // 方法二 for(int i = 0; i < 3; i++) { for(int j = 0; j < 4;) // 请注意大师码这里的写法 cout << matrix[i][j++] << ", "; // 请思考,可以写作 matrix[i][++j] 吗? cout << "\n"; } }
1.3 内存中的排布 #
2. 多维数组 #
定义和读写
int a[ ][7][8] = {…}; // 定义:第一维度,可以省略 a[0][1][2]; // 读写: