按引用调用和按值调用



我正在编写一个程序,允许用户在变量value中输入一个整数,并调用两个备用函数,每个函数将所选整数值增加三倍。该函数triple_by_value按值传递变量数,将参数增加三倍并返回结果。

该函数triple_by_reference通过引用传递变量数,并通过引用参数将数字的原始值增加三倍。

#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 是一个与 main 中的value完全不同的变量,只是它具有相同的值。然而,int &valuemain中对value的引用,这意味着可以安全地将其视为main本身的value

如果在value *= 3后以triple_by_value打印value,您将获得所需的值。如果您希望main中的value具有新值,则可以通过在main中执行value = triple_by_value(value);来将新值分配给main中的value,或者简单地使用triple_by_reference

相关内容

  • 没有找到相关文章

最新更新