bool类型

C语言用int表示布尔型,非0为真,0为假。为了方便使用,C程序中常常定义如下的宏:

   1 #define BOOL int
   2 #define FALSE 0
   3 #define TRUE 1
   4 

在C++语言中,新增了布尔型作为内置的基本类型。bool、true、false是三个新增的关键字。

   1 bool flag = false;
   2 if(flag)
   3     cout << "flag is true";
   4 else
   5     cout << "flag is false";

C++中所有的关系运算和逻辑运算的结果都是bool类型的。逻辑运算的操作数需要bool类型的,if、while、for等循环控制语句中的条件表达式也要求是bool类型的。

为了保证与C语言兼容性,在C++中int与bool的可以自动相互转换:

int型 => bool型 => int型
0    => false  => 0
非0  => true   => 1

比如

if(1) { // int型的1自动转换为bool型的true
    cout << (0 || 3>4) << endl;  // 参与||运算的操作数0被自动转换为false
    cout << true + false << endl; // 参与+运算的操作数true和false自动被转换为1和0
}

指针类型可以自动转换成bool类型:

指针    => bool型
空指针   => false
非空指针 => true

比如

int *p = (int*)malloc(sizeof(int));
if(p) {
    cout << "malloc succeeded!";
}


CategoryCpp

C++:bool类型 (2008-03-13 20:57:03由czk编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.