你这个是c语言吧。你可以看看布尔值其他类型的转换规则。
表达式!(x+y)+z-1&&y+z/2的值只可能是0和1,也就是假和真。这里是表达式条件满足,所以是1。
!(x+y)+z-1和y+z/2分别判断是0还是1,然后再进行逻辑与&&运算。C语言当中,整数转布尔值的时候是非0转1,0转0吧。按这个规则来的。
!(x+y)+z-1&&y+z/2
=!(3+4)+5-1&&4+5/2
=!7+5-1&&4+5/2
=0+4&&4+5/2
=4&&6
=1
运算符的优先级:
()最高,下来是!下来是+,-,*,/,最后是&&
逻辑与在左边右边只要有一个0的时候结果就为0
4和6都不为0,所以结果为1