cod*_*ugh -1 c if-statement negation negative-number
我知道0和NULL自己评估为FALSE,我知道负整数或正整数自己评估为TRUE.
我的理解是NOT运算将在计算表达式后发生,因此if (-1)
将进行求值TRUE
,然后应用!
操作数将意味着NOT TRUE
等于FALSE
.这是正确的操作顺序,是否正确if (!(-1))
评估FALSE
?
if (!(-1))
可以通过考虑运算符优先级来计算评估.
首先,将一元-
应用于1,产生积分-1
.然后,这个值在逻辑上被否定了!
.这涉及折叠-1
成逻辑值.C中的规则对于整数类型来说很简单:0是假的,其他一切都是真的.
因此-1
是真实的,当逻辑否定发生时,我们就会变得虚假.
因此,这个陈述是错误的.
归档时间: |
|
查看次数: |
6221 次 |
最近记录: |