LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 207|回复: 0

C++布尔类型(bool)

[复制链接]
发表于 2023-12-27 15:34:47 | 显示全部楼层 |阅读模式
在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如:
  • #include <stdio.h>
  • int main(){
  •     int a, b, flag;
  •     scanf("%d %d", &a, &b);
  •     flag = a > b;  //flag保存关系运算结果
  •     printf("flag = %d\n", flag);
  •     return 0;
  • }


运行结果:
10 20↙
flag = 0

C语言并没有彻底从语法上支持“真”和“假”,只是用 0 和非 0 来代表。这点在 C++ 中得到了改善,C++ 新增了 bool 类型(布尔类型),它一般占用 1 个字节长度。bool 类型只有两个取值,true 和 false:true 表示“真”,false 表示“假”。

bool 是类型名字,也是 C++ 中的关键字,它的用法和 int、char、long 是一样的,请看下面的例子:
  • #include <iostream>
  • using namespace std;
  • int main(){
  •     int a, b;
  •     bool flag;  //定义布尔变量
  •     cin>>a>>b;
  •     flag = a > b;
  •     cout<<"flag = "<<flag<<endl;
  •     return 0;
  • }


10 20↙
flag = 0

遗憾的是,在 C++ 中使用 cout 输出 bool 变量的值时还是用数字 1 和 0 表示,而不是 true 或 false。JavaPHPJavaScript 等也都支持布尔类型,但输出结果为 true 或 false,我武断地认为这样更科学。

你也可以使用 true 或 false 显式地对 bool 变量赋值,例如:
  • #include <iostream>
  • using namespace std;
  • int main(){
  •     bool flag = true;
  •     if(flag){
  •         cout<<"true"<<endl;
  •     }else{
  •         cout<<"false"<<endl;
  •     }
  •     flag = false;
  •     if(flag){
  •         cout<<"true"<<endl;
  •     }else{
  •         cout<<"false"<<endl;
  •     }
  •     return 0;
  • }


运行结果:
true
false
注意,true 和 false 是 C++ 中的关键字,true 表示“真”,false 表示“假”。
在以后的编码中,我推荐使用 bool 变量来表示逻辑运算、关系运算以及开关变量的值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表