我知道使用变量后后缀运算符增量值。 但在这种情况下,这是一个有效的陈述吗?因为看起来我是在返回语句之后修改变量。
#include <iostream>
using namespace std;
int val = 0;
int foo()
{
return val++;
}
int main()
{
cout<<foo();
cout<<endl<<val;
}
任何详细说明都会有所帮助。
最佳答案
这么说return val++
首次返回val
然后递增它不完全正确。表达式val++
增加 val
的值,但评估为旧值 val
.
你可以想到后缀++
作为使用辅助变量来保存旧值的函数:
int temp = val; // save old value to temp
++val; // increment actual value
return temp; // evaluate to old value
关于c++ - 为什么这段代码返回 0 和 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245938/