c ++ bool问题

Don*_*Lun 43 c++ boolean

在c ++中,bool,是真的== 1,false == 0 ?? 谢谢

And*_*all 87

false == 0true = !false

即任何非零并且可以转换为布尔值的东西都不是false,因此它必须true.

一些例子澄清:

if(0)          // false
if(1)          // true
if(2)          // true
if(0 == false) // true
if(0 == true)  // false
if(1 == false) // false
if(1 == true)  // true
if(2 == false) // false
if(2 == true)  // false
cout << false  // 0
cout << true   // 1
Run Code Online (Sandbox Code Playgroud)

true 评估1,但任何int不是false(即0)评估true但不等于,true因为它不等于1.

  • `true == 1`.其他非零值是正确的,但不是"真". (15认同)
  • 不,他是对的.我会明确隐含转换.`int(true)== 1`,和`bool(2)== true`,但是`2!= int(true)`. (13认同)
  • 我看到你在说什么,更新了答案,明确_evaluating_到'true`和_equal_到`true`之间的区别. (2认同)
  • 2也是如此?这意味着任何非零都是真的吗? (2认同)
  • @user6288471 是的,确实如此。 (2认同)

归档时间:

查看次数:

174823 次

最近记录:

14 年,7 月 前