max*_*mus -2 c c++ postfix-operator
我知道使用变量后的postfix运算符增量值.但在这种情况下,它是一个有效的声明吗?因为看起来我在返回语句后修改变量.
#include <iostream>
using namespace std;
int val = 0;
int foo()
{
return val++;
}
int main()
{
cout<<foo();
cout<<endl<<val;
}
Run Code Online (Sandbox Code Playgroud)
任何详细说明都会有所帮助.
说return val++第一次返回val然后递增它并不完全正确.表达式val++增加值的值val,但计算为旧的值val.
您可以将postfix ++视为使用辅助变量来保存旧值的函数:
int temp = val; // save old value to temp
++val; // increment actual value
return temp; // evaluate to old value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |