看板 C_and_CPP 關於我們 聯絡資訊
假設你有某個變數這樣寫 bool isOnOff = false; 因為if判斷式的()中, 只問布林值, 所以false, 0, NULL, 這些在他眼中都一樣, 就是 false 所以無論是負數,正數,或者一串很詭異的記憶體位址, 在他眼中都是 true 因此這樣寫 if(isOnOff) { MessageBox(NULL, "test", "Topic", MB_OK); } 其實就跟 if(false) { MessageBox(NULL, "test", "Topic", MB_OK); } 是一樣的, 大括號內的code不會被執行 ! 這個符號, 在C++就是把結果反轉的意思 所以你看到人家寫 if(!isOnOff)的話 意思就是把裡面的布林值反轉 真變假, 假變真 因此上面的例子改成 if(!isOnOff) { MessageBox(NULL, "test", "Topic", MB_OK); } 這樣就會被執行了 //另外 還有個比較常用的偷懶手法 就是拿來反轉一些開關 例如你寫某個按鈕要控制某個布林開關 你可以試著這樣寫 isOfOff = !isOnOff; 這樣就可以用同一行程式碼 來達到開變關, 關變開的效果 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.101.104
MOONRAKER:第一個例子有脫褲子放屁之感 11/25 13:15
VictorTom:第一個例子把變數改成其他型態也許比較看得出差別:) 11/25 13:16
devilarise:謝謝指教@@ 表達能力不太好, 有待磨練 11/25 21:17