面试题答案
一键面试#include <iostream>
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int sum = 0;
int (*p)[4] = arr; // 定义数组指针指向二维数组首行
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
sum += *(*(p + i) + j); // 通过数组指针访问元素并累加
}
}
std::cout << "总和为: " << sum << std::endl;
return 0;
}
上述代码中:
- 首先定义了二维数组
arr
。 - 接着定义了数组指针
p
,它指向包含4个int
类型元素的数组,并且初始化为指向arr
的首行。 - 通过两层循环,使用数组指针
p
遍历二维数组的每个元素,并将其累加到sum
中。 - 最后输出总和。