找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2445|回复: 0
收起左侧

BOOL,int,float,指针变量 与“零值”比较

[复制链接]
ID:108615 发表于 2016-3-13 17:20 | 显示全部楼层 |阅读模式
      BOOL(布尔)型变量:if(!var)
   int型变量: if(var==0)
   float型变量:
   const float EPSINON = 0.00001;    //在计算机之中,它只认识0和1,自然数2都不认识,所以计算机是比较2的,而当数字小到一定的程度计算机也不认识如:它的极限就是1.2*10负38次方,而一般的情况下我们就把小于0.00001绝对值得数认为是0.
   if ((x >= - EPSINON) && (x <= EPSINON)
   指针变量:  if(var==NULL)
  剖析:
  考查对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分。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表