1. 布尔型
1.1 布尔型的值
- 布尔型的值:只有两个false(假)和true(真)。且false的序号为0,true的序号是1;
- 布尔型的值:用任何非0整数给bool型变量赋值时,其值都为1,甚至非整数的其他类型,只要非0,其值也是1;
- 相当于:enum bool{false, true} ;
(1)0:为false,即为假;
(2)1:为true,即为真;
如:bool a = 3; //a=3,为非0,true 真
bool b = 1; //b=1,为非0,true 真
bool c = a+b; //c=4,为非0,true 真
bool d = a-a; //d=0,为0,false 假 布尔型值的程序示例:
#include <iostream> using namespace std; int main() { bool check_a = 3; bool check_b = 1; bool check_c = check_a + check_b; bool check_d = check_a - check_a; if (true == check_a) cout<<"check_a="<<check_a<<" "<<"true"<<endl; else cout<<"check_a="<<check_a<<" "<<"false"<<endl; if (true == check_b) cout<<"check_b="<<check_b<<" "<<"true"<<endl; else cout<<"check_b="<<check_b<<" "<<"false"<<endl; if (true == check_c) cout<<"check_c="<<check_c<<" "<<"true"<<endl; else cout<<"check_c="<<check_c<<" "<<"false"<<endl; if (true == check_d) cout<<"check_d="<<check_c<<" "<<"true"<<endl; else cout<<"check_d="<<check_c<<" "<<"false"<<endl; system("pause"); return 0; } =>check_a=1 true check_b=1 true check_c=1 true check_d=1 false
1.2 BOOL和bool的区别
- 类型不同:
bool:为布尔型用作逻辑判断,为C++内置数据类型;
BOOL:在< windef.h>typedef int BOOL;在< wtypes.h>typedef long BOOL; - 长度不同:
bool:只有1个字节;
BOOL:长度视实际环境来定,一般可认为是4个字节; - 取值不同:
bool:取值false和true,是0和1的区别;false可以代表0,但true有很多种,并非只有1。
(1)返回值为等于0的整数时,为false;
(2)返回值为大于等于1的整数时,为true;
注:如果数个bool对象列在一起,可能会各占1个Byte,这取决于编译器。
BOOL:是微软定义的typedef int BOOL(在windef.h中。与bool不同,它是一个三值逻辑TRUE/FALSE/ERROR。
(1)返回值为大于等于1的整数时,为TRUE;
(2)返回值为等于0的整数时,为FALSE;
(3)返回值为等于-1的整数时,为ERROR;
参考文献 :
[1]《C++全方位学习》范磊——第四章
[2]《C++程序设计教程(第二版)》钱能——第三章
[3] 百度搜索关键字:C++数据类型、布尔型、BOOL和bool的区别