博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中的布尔值
阅读量:5856 次
发布时间:2019-06-19

本文共 1077 字,大约阅读时间需要 3 分钟。

  在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法:

//定义一个int类型变量,当变量值为0时表示false,值为1时表示true int flag; flag = 0; //...... flag = 1; if( flag ) {
//...... }

  

  但这种做法不直观,而且没有明确flag一定是布尔值。所以我们又借助C语言的宏定义:

//宏定义布尔类型 #define BOOL int #define TRUE 1 #define FALSE 0 //定义一个布尔变量 BOOL flag = FALSE;

 

  这种方法虽然直观,但依然是换汤不换药,变量flag在编译器看来依然是int类型。

  新版本总会改进一些不好的地方,所以在最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。

  _Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。

  C99还提供了一个头文件 <stdbool.h> 定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

//导入 stdbool.h 来使用布尔类型 #include 
#include
//计算n!,n的值在main中定义 int main(void) {
int n = 10; //计算叠乘数 int sum = 1; //用来存放叠乘的结果 bool flag = false; //叠乘标记 int num = n; //循环次数 while( !flag ) {
sum = sum * (num--); //当num=1时结束循环 if( num == 1) {
flag = true; } } printf ("%d的叠乘值为 %d \n", n, sum); return 0; }

转载于:https://www.cnblogs.com/NULL-ROOT/p/10363862.html

你可能感兴趣的文章
将函数放于map中
查看>>
shell 一个字符拆分 | `reboot` |
查看>>
JAVA程序报ORA-01704: string literal too long错误的解决方法
查看>>
批处理-获得多台设备信息,选择给某台或全部设备安装apk
查看>>
Eclipse中修改代码格式
查看>>
外部导入Android工程出错
查看>>
mysql负载一直困扰着我
查看>>
css3对话框
查看>>
微信小程序WebSocket相关问题说明
查看>>
产品思想的重要性
查看>>
git merge和rebase的区别
查看>>
Elastic X-Pack 代码已公开并上线
查看>>
tableview在设置样式为plain时,要让cell显示通栏方法
查看>>
Bitcoin、Ethereum、hyperledger 技术宏观比较
查看>>
JAVA类,别名问题
查看>>
mysql 时间差函数
查看>>
linux软件包版本冲突
查看>>
《地球毁灭日》5希望号诺亚方舟
查看>>
JavaFX的点击和焦点
查看>>
详解Centos中mount命令挂载windows7共享目录
查看>>