请问为什么输出结果是1 明明有两个都是假的

img


在调试窗口看到b等于0 为什么非b还是0
a等于2怎么判断真或假?

首先:++a表示先加加在赋值,所以a=2,为真。
第二个:!b,b本来等于0,!表示逻辑非,所以假变为真。
第三个:c是后置--,所以先计算c等于1,为真 等结束之后c再--;
综上:真&&真&&真,所以结果为1。

一个等号是赋值,后边两个是真c--,先用1比较,再c减一,

c--是先参与运算,然后再自减。因此c=1先参与运算,然后才自减为0

这里面就是弄清楚基础的++和--和!的预算规则就知道了。