首先声明以下为个人通过在网上找的资料学习总结,存在不足及有误之处欢迎提出疑问及补充
一、bool与BOOL
1.BOOL是微软定义的typedef int BOOL;由此可见它是int型,通常由实际环境决定它有几个字节,一般认为BOOL有四个字节。
BOOL是三值逻辑,有FALSE\TRUE\ERROR,定义在WinDef.h中,返回值为1对应true,0对应false,-1对应error。它的取值是0和非0;
2.bool是布尔型,只占一个字节,并且只有true和false两个值,取值是0和1;定义在stdbool.h中。
特别重要及有用的是!!只要使用了#include<stdbool.h>这个头文件便可以像在c++中那样使用bool。
另:在预处理阶段,true和false都会被0和1替换。
3.下面举例bool和BOOL:
bool:x=-29,y=0,z=10;
输出结果为:x=1,y=0,z=1;
BOOL:x=-29,y=0,z=10;
输出为:x=-29,y=0,z=10;
这里可能有的小伙伴会有疑问为什么这里不是1,-1,0的结果,因为这三个是逻辑返回的结果,BOOL的取值是0和非0。
二、专谈bool
1.在没有#include<stdbool.h>之前呢我们通常会用到一下三种方式:
第一个:
typedef int bool;
#define true 1;
#define false 0;
第二个:
typedef int bool;
enum{false,true};
第三个:
typededf enum{false,true}bool;
以后有机会会再发一篇文章谈typedef;
2.布尔型变量用途:
布尔型变量可用于逻辑表达式,即“或”“与”“非”之类的逻辑运算和大于小于的关系运算,运算结果为真或假。
bool也可以用于定义函数类型为布尔型,布尔型函数会有return true、return false这两个语句。
bool运算结果也会用于条件语句。
例如:
bool getvalue(bool b){
if(b==true)
return true;
else
return false;
}
l例如:
bool cmp(int a,int b){
if(a>b)
return true;
else
return false;
}
bool也常用于判断链表是否为空;
等放寒假有时间就整理一下链表知识。