gpt4 book ai didi

c++ - 按引用调用和按值调用

转载 作者:行者123 更新时间:2023-11-28 00:20:54 24 4
gpt4 key购买 nike

我正在编写一个程序,让用户将一个整数输入到变量 value 中,然后调用两个替代函数,每个函数将所选整数值乘以三倍。triple_by_value 函数按值传递变量 number,将参数乘以三倍并返回结果。

函数triple_by_reference通过引用传递变量number,并通过引用参数将number的原始值乘以三倍。

#include <iostream>
using namespace std;

int main()
{
cout << "Enter a number (-1 to end): ";
cin >> value;

if (value != -1)
{
triple_by_value(value);
cout << "Triple-By-Value: " << value << endl;
triple_by_reference(value);
cout << "Triple-By-Reference: " << value << endl;
}
return 0;
}

int triple_by_value(int value)
{
value *= 3;
return value;
}

int triple_by_reference(int &value)
{
value *= 3;
return value;
}

我似乎遇到了一个问题,函数 triple_by_value 不是,好吧,将值增加三倍,只是按原样打印。

如有任何帮助,我们将不胜感激。

最佳答案

顾名思义,按值传递变量意味着函数只获取变量的值而不访问变量本身。

在您的示例中,int value是与 value 完全不同的变量在 main ,只是它具有相同的值。然而,int &value是对 value 的引用在 main ,这意味着可以安全地将其视为 valuemain本身。

如果你打印 valuetriple_by_valuevalue *= 3 之后你会得到你想要的值(value)。如果你想要valuemain要获得新值,您可以将新值分配给 valuemain通过做value = triple_by_value(value);main , 或者简单地使用 triple_by_reference .

关于c++ - 按引用调用和按值调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com