gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:36:32 25 4
gpt4 key购买 nike

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

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/

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