在 void 函数中修改后打印初始化整数的新值?

Print the new value of an initialized integer after modifying it inside a void function?

我希望下面的 C++ 代码打印 6,但它却打印了 5。我该如何更改它以便打印新值?

#include <iostream>

void increment(int a) {
    a++;
}

int main() {
    int number = 5;
    increment(number);
    std::cout << number; // prints 5, not 6
}

您定义函数的方式意味着将 number 变量的 copy 传递给它。改变函数内的副本不会影响原始变量。

如果要在函数内部引用原始整型变量,需要定义函数对变量进行引用:

void increment(int &a) {
    a++;
}

正如其他人之前提到的,您绝对应该查看按值传递与按引用传递。

代码中的递增函数复制您的数字变量并递增该副本。如果要修改原始变量,则需要使用 & 运算符将其传递给 reference

void increment(int &a){...}

这将为您传递的变量创建一个别名(引用),并将修改内存中该地址的值(从而修改您的原始变量)。

出于性能原因,通常不建议通过引用传递 int 等基本类型,但正如我之前所说,您绝对应该阅读更多有关该主题的内容,因为它非常基础。