作者sjgau (sjgau)
看板C_and_CPP
標題Re: [問題] 一個面試問題
時間Thu Sep 3 11:54:42 2009
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