MST

星途 面试题库

面试题:C语言指针表达式之数组指针运用

假设有一个二维数组 `int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};`,请使用数组指针遍历该二维数组,并将所有元素相加,返回总和。
21.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#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;
}

上述代码中:

  1. 首先定义了二维数组 arr
  2. 接着定义了数组指针 p,它指向包含4个 int 类型元素的数组,并且初始化为指向 arr 的首行。
  3. 通过两层循环,使用数组指针 p 遍历二维数组的每个元素,并将其累加到 sum 中。
  4. 最后输出总和。