面试题答案
一键面试#include <iostream>
void printArray(int (*arr)[3][4]) {
int sum = 0;
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
for (int k = 0; k < 4; ++k) {
sum += *(*(*(arr + i) + j) + k);
}
}
}
std::cout << "数组所有元素之和为: " << sum << std::endl;
}
你可以这样调用这个函数:
int main() {
int threeD[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}
}
};
printArray(threeD);
return 0;
}
在上述代码中:
printArray
函数接收一个指向三维数组int[3][4]
的指针arr
。- 通过三层嵌套循环遍历三维数组,利用指针偏移来访问数组的每一个元素,并累加这些元素到
sum
变量中。 - 最后输出所有元素之和。
- 在
main
函数中,创建了三维数组threeD
并调用printArray
函数进行打印元素之和。