多维数组的定义与使用
多维数组的定义与使用
掌握 C++多维数组(不包括变长数组)的基本概念及使用。
三维及以上数组仍是固定大小、行优先存储。例如 int cube[2][3][4]; 有 2×3×4=24 个元素,访问写作 cube[i][j][k]。每一维的长度在定义时必须为编译期常量。
四级考试较少写完整三维遍历,更常考概念:维数、各维长度、元素总数、与二维数组相同的初始化规则。若题目给出「张量」式下标,先算清每一维合法范围再填数。
int cube[2][2][2] = {
{{1,2},{3,4}},
{{5,6},{7,8}}
};
// cube[1][0][1] 的值是 6
把高维数组想成「数组的数组」,逐层用下标剥开,就不容易数错元素个数。
执行完下面的代码后,sum 的值是( )。
int arr[2][3][2] = {
{{1,2}, {3,4}, {5,6}},
{{7,8}, {9,10}, {11,12}}
};
int sum = 0;
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
for(int k = 0; k < 2; k++)
if((i+j+k) % 2 == 0)
sum += arr[i][j][k];