作者lllll12b56 (11公分的嘉航)
看板C_and_CPP
標題[問題] 新手if用法問題
時間Sun Jul 5 16:52:13 2020
因為最近剛學遇到一個打法是 if(!int)
我自己去測發現好像跟if(int == 0)是一樣的
請問這是什麼特殊用法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.252.41 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1593939135.A.F84.html
1F:→ Lipraxde: ! 是 logic operator,在運算時 int 會被隱式轉型成 bo 07/05 17:33
2F:→ Lipraxde: ol。兩種寫法都可以,不過我比較偏好用 == 就是了 07/05 17:33
3F:推 Richun: 如果你不是多寫一個字就會死的人 那用i == 0表達比較清楚 07/06 01:53
4F:→ Richun: 這兩個寫法是邏輯上相等 !(logical not)運算會把所有非0的 07/06 01:54
5F:→ Richun: 值轉成0 而把0轉成1 在C裡面非0就是True 只有0是False 07/06 01:55
6F:→ MOONRAKER: 要寫,不要打。都民國幾年了還在打。 07/06 11:01
7F:推 stupid0319: if(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!int == 0) 07/06 13:16
8F:推 cuteSquirrel: XD !接龍 07/06 18:54
9F:推 sppmg: 因為 C 是以是否 == 0 判斷,所以可以這樣用。之前也有文指 07/06 22:49
10F:→ sppmg: 出這樣寫,執行不會比較快,因此還是挑可讀性佳的用。然後 07/06 22:49
11F:→ sppmg: 有些語言如 julia,判斷是使用 bool 而非 int ,這種就一定 07/06 22:49
12F:→ sppmg: 要用 == 判斷。 07/06 22:49
13F:→ loveme00835: 在 C 裡兩者是一樣的 07/06 22:55