Re: [問題] 一個面試問題

看板C_and_CPP (C/C++)作者 (sjgau)時間16年前 (2009/09/03 11:54), 編輯推噓8(804)
留言12則, 5人參與, 最新討論串1/1
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

09/03 14:20, , 1F
可以說明一下為什麼(i != !!i)只有0 跟1是true嗎?
09/03 14:20, 1F

09/03 14:21, , 2F
再下愚昧想不通 ><
09/03 14:21, 2F

09/03 14:27, , 3F
如果i=0 意思是 0不等於 !0<==1 !!0<===0 ,0不等於0成立嗎
09/03 14:27, 3F

09/03 14:27, , 4F
結果是不成立 得到false
09/03 14:27, 4F

09/03 14:28, , 5F
i=1 也是一樣意思 !1=0 !!1=1 1不等於1? false
09/03 14:28, 5F

09/03 14:29, , 6F
隨便代個i從-2~+4, 然後直接印整數!!i出來看吧:)
09/03 14:29, 6F

09/03 14:41, , 7F
!i骨子裡也是一個判斷式,如果結果為true,編譯器通常會設
09/03 14:41, 7F

09/03 14:41, , 8F
為1
09/03 14:41, 8F

09/03 17:12, , 9F
不是通常, true一定是1. c++ standard有規定
09/03 17:12, 9F

09/03 17:37, , 10F
請問F...你說的true是指C++中的關鍵字"true",type為bool?
09/03 17:37, 10F

09/03 17:57, , 11F
yes
09/03 17:57, 11F

09/04 16:24, , 12F
經L大說明懂了,原來隱藏在表面之下的真實是設為true
09/04 16:24, 12F
文章代碼(AID): #1Adpu3-E (C_and_CPP)
文章代碼(AID): #1Adpu3-E (C_and_CPP)