什么是!int_variable--的意思?

时间:2014-12-05 10:38:32

标签: c if-statement logical-operators negation

我无法理解以下代码在s上的作用:

 if(!s--)

sint

2 个答案:

答案 0 :(得分:3)

实际上,它具有误导性。

您正在测试s与0不同(if (!s))。然后,无论结果如何,你都会减少它。

所以,这是两个不同的操作。 它可以这样写:

if (!s)
{
     s--;
     //...
}
else
{
     s--;
}

答案 1 :(得分:2)

!被称为negation运算符。这是一个合乎逻辑的运算符。

请在此处查看wikipedia entry

if(!s--)

执行的顺序

  1. 检查s的值是0,如果s0if条件成功[感谢! } operator],否则,失败。
  2. 之后,将s减少一个单位。
  3. 根据if条件的评估,继续执行[if条件下的代码或下一个代码块]。