0

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

该函数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不是,将值增加三倍,只是按原样打印。

任何帮助将非常感激。

4

1 回答 1

3

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

在您的示例中,是与inint value完全不同的变量,只是它具有相同的值。但是,是对in的引用,这意味着将其视为in本身是安全的。valuemainint &valuevaluemainvaluemain

如果您valuetriple_by_value之后打印,value *= 3您将获得所需的值。如果您希望valueinmain拥有新值,您可以通过执行in 将新值分配给 in value,或者简单地使用。mainvalue = triple_by_value(value);maintriple_by_reference

于 2014-12-19T13:34:59.090 回答