C语言的布尔类型bool
来源:互联网 发布:虚拟机 ubuntu 屏幕 编辑:程序博客网 时间:2024/04/30 04:12
C语言的布尔类型
在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法:
//定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint 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 <stdbool.h>#include <stdio.h>//计算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;}
0 0
- C语言的布尔类型(_Bool, bool)
- C语言的布尔类型bool
- C语言中的布尔(bool)类型
- C语言中的布尔(bool)类型
- 浅谈C语言中的布尔(bool)类型
- 浅谈C语言中的布尔(bool)类型
- C语言的布尔类型
- C语言的布尔类型
- C++的布尔类型bool
- 关于C和C++的布尔类型,_Bool和bool
- c++之超越c的语法01-bool 布尔类型
- C++对C的扩展之bool(布尔类型)
- C语言bool类型
- C 语言bool类型
- C语言 bool类型
- C语言是没有布尔类型的!
- C语言的布尔类型(_Bool)
- C语言的布尔类型(_Bool)
- Leetcode 236. Lowest Common Ancestor of a Binary Tree
- C# POST
- [leetcode] 415. Add Strings 解题报告
- 从栈的分配例子来看malloc分配内存的问题
- [leetcode] 416. Partition Equal Subset Sum 解题报告
- C语言的布尔类型bool
- windows安装clapack
- Maven Pom 文件中的隐式依赖导致Jar冲突
- 小菜鸟用visual studio写c++的种种
- maven 排除第三方jar包中pom文件中的依赖引用包
- Longest Increasing Path in a Matrix
- springmvc 中@Controller和@RestController的区别
- EventBus使用
- [笔记] Golang小试实现神经网络框架