MST

星途 面试题库

面试题:C++ 中指针在函数参数传递中的应用

在C++ 中,有一个函数 `void modifyValue(int* ptr)`,函数体需要通过指针修改传入变量的值。请编写完整的 `main` 函数调用此函数,展示指针在函数参数传递中如何修改外部变量的值,并解释为什么这样做能达到修改的效果。
13.6万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

void modifyValue(int* ptr) {
    if (ptr != nullptr) {
        *ptr = 42;
    }
}

int main() {
    int num = 10;
    std::cout << "Before modification, num = " << num << std::endl;
    modifyValue(&num);
    std::cout << "After modification, num = " << num << std::endl;
    return 0;
}
  1. 为什么这样做能达到修改的效果
    • 在C++中,当我们将变量的地址(指针)作为参数传递给函数时,函数内部通过这个指针可以直接访问和修改该指针所指向的内存地址中的值。
    • main函数中,定义了变量num,然后将num的地址&num传递给modifyValue函数。在modifyValue函数中,ptr指针指向了num在内存中的位置。通过解引用ptr(即*ptr),我们可以直接修改num的值,所以当main函数再次输出num时,其值已经被修改。