c++中运算符判断问题

img


我感觉意思应该是k不等于-237,判断结果为真,应该输出1,为啥k的值是0?
还有,false和0有什么区别,为什么能输出0却不是falae?

!是个逻辑操作符取反,如果后面的值为0,那么结果为1,否则结果为0
由于x不是0,所以-x也不是0,那么k的结果就是0
正常逻辑表达式的结果是真或假,也就是1或0。由于k是int类型,所以k等于0