2014-12-05 166 views
-3

我不明白下面的代码正在做s!int_variable--?的含义是什么!

if(!s--) 

sint

+1

1)这不是一个函数。 2)使用分而治之。那里只有三件事:'如果'。 '!'和'--'。 – 2014-12-05 10:40:01

+0

首先,编译器正在检查s是否等于零以进入if块。然后s递减1. – Mukit09 2014-12-05 10:45:56

+0

Thx all! 我现在明白了:) – 2014-12-05 10:58:44

回答

2

!被称为negation运营商。这是一个逻辑运算符。

查看wikipedia entry这里。

if(!s--) 

在其中执行

  1. 检查s0与否,如果s0顺序,if条件是成功[得益于!操作者],否则,失败。
  2. 之后,将s减1个单位。
  3. 根据对if条件的评估,继续执行[在if条件下的代码或下一代码块]。
+0

现在,谢谢 – 2014-12-05 13:11:28

+0

@JensGustedt感谢你。 :-) – 2014-12-05 13:19:15

3

其实,这是误导。

您正在测试的是s不等于0(含if (!s))。然后,无论结果如何,你都在减少它。

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

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