理解 C 中的按值调用
在这个按值调用示例中,一个名为 changeValue() 的函数接受一个整数argument,它表示从 main() 函数传递的实际参数的副本。当函数将参数的值更改为 6 时,它会修改副本,而不是存储在 main() 函数中的原始值。
这是因为按值调用会创建参数的新副本并将其传递给函数。因此,对函数内部副本所做的任何更改都不会影响原始值。
使用 Call-by-Reference 解决问题
修改原始参数从 main() 发送,我们需要使用引用调用。这涉及将引用(别名)传递给实际参数,而不是副本。
在示例中,这可以通过将 changeValue() 函数签名更改为:
void changeValue(int &value)
通过在参数类型之前使用与号(&),我们表明该函数接收对原始变量的引用。对引用所做的任何更改都将直接影响 main() 中的原始参数。
修订后的代码:
#includeusing namespace std; void changeValue(int &value); int main() { int value = 5; changeValue(value); cout << "The value is : " << value << "." << endl; return 0; } void changeValue(int &value) { value = 6; }
有了此更改,当changeValue() 设置时引用 6,main() 中的原始值将更改为 6,导致输出“The value is : 6.”。
以上是按值调用如何影响 C 中的参数修改?的详细内容。更多信息请关注PHP中文网其他相关文章!