Re: [問題] 一個超級白吃的問題
假設你有某個變數這樣寫
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
→
11/25 13:15, , 1F
11/25 13:15, 1F
推
11/25 13:16, , 2F
11/25 13:16, 2F
→
11/25 21:17, , 3F
11/25 21:17, 3F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
9
19
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章