不太明白画圈的这一句

img


画圈的这一步,不应该是先减1再赋值给f吗 f=0 为什么答案f=1

f=后面是个逻辑表达式啊。逻辑操作符优先级高于赋值语句,所以先执行--x||y--&&z++,因为--x的结果为0 ,而y--和z++都是先执行表达式,再进行加1和减1,所以相当于y&&z,结果是1,所以整个逻辑表达式结果为1,最终f=1

这个要注意2点,一个是||是逻辑,不是按位,一个是&&优先级比||高

&&是逻辑与
||是逻辑或
它们都有短路特性
没有括号的情况下,&&和||优先级一样,按从左到右的顺序依次计算
与的时候,如果左值已经是0,那么不继续计算,直接返回0
或的时候,如果左值已经是1,不继续计算,直接返回1