!X==0,!的
优先级高,所以相当于(!x)==0。
题目没说x是什么类型,暂且当成
整型吧。
c的
逻辑运算中,把0当做false,非0当做true。
表达式进一步解释为(!x)==false。
于是(!x)的结果就是,如果x是0,则 !x 是true;否则 !x 是false。
所以,如果x是0,(!x)==false的结果是false;否则是true。
然后只要看下面哪个跟这个逻辑的运算结果是一样的就行了。
-----
x==1,只有x是1的时候结果为true,其他情况都是false。跟上面的逻辑不一样了。
x,上面也说了,整型转逻辑运算时,0是false,非零是true,所以x的逻辑运算结果跟 (!x)==0等价。
x!=0,x为0的时候是false,非零是true。逻辑上等价。
x>0 || x<0,分析一下如果x为0,则既不满足x>0也不满足x<0所以结果是false;其他情况要么x大于0,要么x小于0,所以结果是true。逻辑上也等价。