看板 C_and_CPP 關於我們 聯絡資訊
i= 0, or 1 get False, i= others, get True #if 0 i= -10, True i= -9, True i= -8, True i= -7, True i= -6, True i= -5, True i= -4, True i= -3, True i= -2, True i= -1, True i= 0, False i= 1, False i= 2, True i= 3, True i= 4, True i= 5, True i= 6, True i= 7, True i= 8, True i= 9, True i= 10, True Press any key to continue #endif // ---------------------------------------------- #include <iostream> using namespace std; int main(int argc, char* argv[]) { int i; for (i=-10;i<=10;i++) { printf("i= %5d, ", i); if (i != !!i) { cout << "True\n"; } else { cout << "False\n"; } } return 0; } ※ 引述《handpower (衝衝衝)》之銘言: : 給定下面的程式碼: : #include <iostream> : using namespace std; : int main(int argc, char* argv[]) : { : int i; : // i = ?? 會輸出 True : if (i != !!i) : { : cout << "True\n"; : } : else : { : cout << "False\n"; : } : return 0; : } : 問題在於i要設成多少才會印出True? : 非常感謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.74.168
conan77420:可以說明一下為什麼(i != !!i)只有0 跟1是true嗎? 09/03 14:20
conan77420:再下愚昧想不通 >< 09/03 14:21
QQ29:如果i=0 意思是 0不等於 !0<==1 !!0<===0 ,0不等於0成立嗎 09/03 14:27
QQ29:結果是不成立 得到false 09/03 14:27
QQ29:i=1 也是一樣意思 !1=0 !!1=1 1不等於1? false 09/03 14:28
VictorTom:隨便代個i從-2~+4, 然後直接印整數!!i出來看吧:) 09/03 14:29
lungswu:!i骨子裡也是一個判斷式,如果結果為true,編譯器通常會設 09/03 14:41
lungswu:為1 09/03 14:41
Fenikso:不是通常, true一定是1. c++ standard有規定 09/03 17:12
lungswu:請問F...你說的true是指C++中的關鍵字"true",type為bool? 09/03 17:37
Fenikso:yes 09/03 17:57
conan77420:經L大說明懂了,原來隱藏在表面之下的真實是設為true 09/04 16:24