2014-12-05 173 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--; 
}