逻辑运算符的应用问题

img


这个z为什么等于0,0基础啥都不懂,感谢c语言越学越废怎么办啊

z = ( .... ) && (…)
因为 ( ) 的优先权 比 && (逻辑 AND) 高
所以先算 ( ) 里面的值
(x++ ==5) 因为 ++ 在 x后面, 所以先算 x == 5, 因为 4不等于 5, 所以为 false 0 , x=5, ( )里的要执行完全
这时 z = (false , x=5 ) && ( don’t care) = false 0 所以 (++y) 不用执行, 被跳过了
所以 z=0, x=5, y=5
|| 逻辑运算 OR, 只要一个为 True =1 , 则结果就是 True 1
m =(x++) || (++y)
因为 x=5 所以 m= ( true , x=6 ) || ( don’t care) = 1
m= 1, x= 6, y=5