page contents

C++布尔类型(bool)

在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如...

在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如:



    1. #include <stdio.h>
    2. int main(){
    3. int a, b, flag;
    4. scanf("%d %d", &a, &b);
    5. flag = a > b; //flag保存关系运算结果
    6. printf("flag = %d\n", flag);
    7. return 0;
    8. }

运行结果:
10 20↙
flag = 0

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

bool 是类型名字,也是 C++ 中的关键字,它的用法和 int、char、long 是一样的,请看下面的例子:



    1. #include <iostream>
    2. using namespace std;
    3. int main(){
    4. int a, b;
    5. bool flag; //定义布尔变量
    6. cin>>a>>b;
    7. flag = a > b;
    8. cout<<"flag = "<<flag<<endl;
    9. return 0;
    10. }

10 20↙
flag = 0

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

你也可以使用 true 或 false 显式地对 bool 变量赋值,例如:



    1. #include <iostream>
    2. using namespace std;
    3. int main(){
    4. bool flag = true;
    5. if(flag){
    6. cout<<"true"<<endl;
    7. }else{
    8. cout<<"false"<<endl;
    9. }
    10. flag = false;
    11. if(flag){
    12. cout<<"true"<<endl;
    13. }else{
    14. cout<<"false"<<endl;
    15. }
    16. return 0;
    17. }

运行结果:
true
false

注意,true 和 false 是 C++ 中的关键字,true 表示“真”,false 表示“假”。

在以后的编码中,我推荐使用 bool 变量来表示逻辑运算、关系运算以及开关变量的值。

attachments-2021-03-CZN8EwKx6055b4c26796f.jpg

  • 发表于 2021-03-20 16:48
  • 阅读 ( 518 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小柒
小柒

1046 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. Pack 1131 文章
  3. 小柒 1046 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章