bool值,整形变量,指针和零比较

1.bool表示布尔型变量,也就是逻辑型变量的定义符,bool类型用的很少,一般情况下我们都使用整型变量来充当一个bool变量的角色;不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。

首先看一个例子:

int flat;
if(flat==TURE){....}
if(flat==FALSE){....}

这个例子是错的,因为在C语言中bool的含义是:0表示假,非0表示真;但是flat是一个整数,可以被赋予为2,3等的非0值,而我们所知道的TURE,FALSE这些标识符被定义为一个固定的值使用if(fale==TURE)的语法就会出现错误。比如:flat本来是5,表示真,但是和TURE(1)比较的时候表达式为假。

正确的写法为:

int flat;
if(flat){....}
if(flat){....}

2.一个整型变量不表示真假,应当将整型变量用“==”或“!=”直接与0比较,所以比较真假时为:

int num=10;
if(num==0){
printf("num==0\n");
}
此时if(num==0)不要写成if(num),因为if(num)括号里面为零此段代码不执行。

3.指针与零比较时应当将指针变量用“==”或“!=”与NULL比较,指针变量的零值是“空”(记为NULL)

int *p=NULL;    //变量初始化,把指针变量设置为空,与p指向的地址内容无关
if(p!=NULL){    //指针变量和零比较必须和NULL比较,也不能写成if(!p)容易让人误解p是布尔变量 
    *p=20;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>