分别写出BOOL,int,float,指针类型的变量a与“零”的比较语句

BOOL :  if ( !a ) or if(a)
int :   if ( a == 0)
float : const EXPRESSION EXP = 0.000001
  <span style="white-space:pre">	</span>if ( a < EXP&& a >-EXP)
pointer : if ( a != NULL) or if(a == NULL)


不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。 



EPSINON应该是一个很小的值吧   因为计算机在处理浮点数的时候是有误差的,所以判断两个浮点数是不是相同,是要判断是不是落在同一个区间的,这个区间就是 [-EPSINON,EPSINON]   EPSINON一般很小,10的-6次方以下吧,具体的好像不确定的,和机器有关。


剖析:

  考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。 
 一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变量(short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL),这是一种很好的编程习惯。


  浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法成“>=”或“<=”形式。如果写成if(x == 0.0),则判为错,得0分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值