【问题标题】:Does true equal to 1 and false equal to 0? [duplicate]c ++ bool问题[重复]
【发布时间】:2011-07-08 12:37:55
【问题描述】:

在 c++ 中,布尔值是 true == 1,false == 0 吗? 谢谢

【问题讨论】:

    标签: c++ boolean


    【解决方案1】:

    false == 0 和 true = !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
    

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

    【讨论】:

    • true == 1。其他非零值为真,但不是true。
    • 不,他是对的。我会让隐式转换清楚。 int(true)==1,和bool(2)==true,但是2 != int(true)。
    • 我明白你在说什么,更新了答案以明确 评估 到 true 和 等于 到 @987654340 之间的区别@.
    • 2 也是真的?这意味着任何非零都是真的?
    • @user6288471 是的,没错。
    【解决方案2】:

    是的,这是正确的。 “布尔变量只有两个可能的值:真 (1) 和假 (0)。” cpp tutorial on boolean values

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2019-08-11
      • 2013-05-31
      • 1970-01-01
      相关资源
      最近更新 更多