作者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
1F:推 conan77420:可以说明一下为什麽(i != !!i)只有0 跟1是true吗? 09/03 14:20
2F:→ conan77420:再下愚昧想不通 >< 09/03 14:21
3F:推 QQ29:如果i=0 意思是 0不等於 !0<==1 !!0<===0 ,0不等於0成立吗 09/03 14:27
4F:→ QQ29:结果是不成立 得到false 09/03 14:27
5F:→ QQ29:i=1 也是一样意思 !1=0 !!1=1 1不等於1? false 09/03 14:28
6F:推 VictorTom:随便代个i从-2~+4, 然後直接印整数!!i出来看吧:) 09/03 14:29
7F:推 lungswu:!i骨子里也是一个判断式,如果结果为true,编译器通常会设 09/03 14:41
8F:→ lungswu:为1 09/03 14:41
9F:推 Fenikso:不是通常, true一定是1. c++ standard有规定 09/03 17:12
10F:推 lungswu:请问F...你说的true是指C++中的关键字"true",type为bool? 09/03 17:37
11F:推 Fenikso:yes 09/03 17:57
12F:推 conan77420:经L大说明懂了,原来隐藏在表面之下的真实是设为true 09/04 16:24