C语言-布尔类型

一、什么是布尔类型

  除了进行数值计算、文字信息处理,电脑也能完成逻辑判断之类任务,逻辑型也称为布尔型(bool),关系运算>、>=、!=等,它们的运算结果是bool型的,只有1(真)、0(假)
  C语言标准(C89)没有为布尔值单独设置一个类型,所以在判断真假时,使用整数 0 表示假,所有非0表示真

二、宏定义

  如果只使用数字来表示真假的话,不太直观,我们可以借助C语言的宏定义来处理一下:

#define BOOL int
#define TRUE 1
#define FALSE 0

拓展:其实也可以使用typedef int BOOL;来替换#define BOOL int,不过他们之间还是有差别的:

1.与#define不同,typedef创建的符号名只受限于类型,不能用于值
2.typedef由编译器解释,不是预处理器。
3.对指针操作不同。若使用#define给类型起别名的话是不可以连续定义的
  例如,下面这两段代码,第一段代码中,定义b时不是char *类型了,而是char类型了,这样会报错的。而第二段代码中,定义b时也是char *类型

#define String char *
String a = "aaa", b = "bbb"; // 等价于 char  *a = "aaa"; char b = "bbb"

typedef char *String;
String a = "aaa", b = "bbb"; // 等价于 char  *a = "aaa"; char *b = "bbb"

总而言之就是:类型用typedef,常量用#define

三、C99新增

1.新增类型_Bool

C99 标准添加了类型 _Bool,表示布尔值,即逻辑值true和false。但是,这个类型的值其实只是整数类型的别名,还是使用 0 表示false, 1 表示true,其它非0的值都会被存储为1。所以_Bool类型实际上也是一种整数类型。

2.头文件stdbool.h

C99还提供了一个头文件 stdbool.h,文件中定义了bool代表_Bool,并且定义了 true 代表 1 、 false 代表 0 。只要加载这个头文件,就可以使用 bool 定义布尔值类型,以及 false 和 true 表示真假。

注意:C语言中没有bool型,只有C++才有boolean型,也称bool。C语言中一般用“0”表示“假”,用“1”表示“真”。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值