MST

星途 面试题库

面试题:C++ 指针基础与数组操作

请编写一段C++ 代码,定义一个包含5个整数的数组,并使用指针遍历该数组,计算数组元素的总和并输出。同时解释一下指针在这个过程中的作用以及指针算术运算的原理。
42.3万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    int *ptr = arr;
    int sum = 0;

    for (int i = 0; i < 5; ++i) {
        sum += *(ptr + i);
    }

    std::cout << "数组元素总和为: " << sum << std::endl;
    return 0;
}

指针在这个过程中的作用

指针ptr指向数组arr的起始地址,通过指针可以间接访问数组元素。它提供了一种灵活的方式来操作数组,相比于使用数组下标,指针有时可以让代码在某些场景下更简洁高效。

指针算术运算的原理

在代码*(ptr + i)中,ptr + i表示指针ptr向前移动iint类型大小的内存单元。因为ptr指向int类型,所以每移动一个单位,实际上是移动了sizeof(int)字节的内存空间。然后通过*解引用操作符获取移动后指针所指向的内存地址中的值。