试图通过引用从函数中获取值,但似乎我一直在获取在函数调用之前分配的值。
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/