谁能解释一下为什么这段程序输出为2 0?

img

img


我不理解,这是什么原理
#include
using namespace std;
int main()
{
int x,y,z;
x=y=1;
z=x++-1;
cout<<x<<" "<<z<<endl;
return 0;
}

z=x++-1;
等价于
z=(x++)-1;
等价于
z=x-1;
x++;
你需要恶补运算优先级的表格了
首先你得知道+号和-号到底跟谁匹配
还得知道++x是在整个表达式计算之前执行,x++是整个表达式计算之后执行