c++ - 函数中的引用不会更改它之外的项目。 C++

标签 c++ function reference

试图通过引用从函数中获取值,但似乎我一直在获取在函数调用之前分配的值。

void third()
{
    int summ = mainInput(3);
    int second = 0;
    cout << "You should pay " << fiveBill(summ, second) << second;
}

int fiveBill(int summ,int &two)
{
    int five=0;
    if (summ%2==0)
    {
        two = summ / 2;
    }
    else
    {
        two = (summ - 5) / 2;
        five++;
    }
    while (two>4)
    {
        two -= 5;
        five += 2;
    }
    return five;
}

变量“second”一直显示为 0,正如我所说,但我确信它在函数内部发生了变化。

最佳答案

在 C++ 中,函数调用参数评估的顺序是有意未指定的。编译器完全有可能评估 second作为 << 的参数在评估对 fiveBill(summ, second) 的调用之前.只需调用 fiveBill在单独的先验表达式中,或将输出拆分为两个表达式。

关于c++ - 函数中的引用不会更改它之外的项目。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32553027/

相关文章:

c++ - 在制作过程结束时显示警告/错误数

c++ - 使用 Swap 函数对类对象数组进行排序后出现重复条目​​ - C++

我可以将二维数组的单行或单列用作 C 中的单维数组吗?

c++ - 试图引用已删除的函数(未引用已创建的函数)

c++ - 比较 2 个字符串映射的通用 C++ 规则引擎

c++ - 如何使用 OpenGL 交叉编译 UnixBench?

c++ - 有没有办法递归遍历矩阵的所有可能子矩阵,同时防止访问某些子矩阵?

python - 写入在第二个函数中打开的文件 (Python)

c++ - 模板参数是否可以是引用类型?

struct - 我可以限制结构的生命周期污染吗?