[C++]这个表达式的执行顺序是什么?

x=2;y=4;z=7;x=y--<=x||x+y!=z;结果x等于1,不知道怎么算的??
2025-03-23 02:36:44
推荐回答(2个)
回答1:

x= ((y--)<=x) || ((x+y)!=z)

也就是 x= 0 || 1
也就是 1

分号结束后,y的值变为3

运算符优先级 加减乘除模运算 》 移位 》 比较 》 按位逻辑运算 》 逻辑运算 》 赋值

其中 比较运算中, >=, <=, <, > 比 ==, != 优先级高~

有点难记。。。不过也要记住。。。 :P

回答2:

先把
bool tmp1 = y<=x;
y++;
bool tmp2 = (x+y) != z;
x = tmp1 || tmp2;