我无法理解以下代码在s
上的作用:
if(!s--)
s
是int
答案 0 :(得分:3)
实际上,它具有误导性。
您正在测试s
与0不同(if (!s)
)。然后,无论结果如何,你都会减少它。
所以,这是两个不同的操作。 它可以这样写:
if (!s)
{
s--;
//...
}
else
{
s--;
}
答案 1 :(得分:2)
!
被称为negation
运算符。这是一个合乎逻辑的运算符。
请在此处查看wikipedia entry。
if(!s--)
执行的顺序
s
的值是0
,如果s
是0
,if
条件成功[感谢!
} operator],否则,失败。 s
减少一个单位。if
条件的评估,继续执行[if
条件下的代码或下一个代码块]。