標(biāo)題: BOOL,int,float,指針變量 與“零值”比較 [打印本頁]

作者: 51hei單片    時(shí)間: 2016-3-13 17:20
標(biāo)題: BOOL,int,float,指針變量 與“零值”比較
      BOOL(布爾)型變量:if(!var)
   int型變量: if(var==0)
   float型變量:
   const float EPSINON = 0.00001;    //在計(jì)算機(jī)之中,它只認(rèn)識(shí)0和1,自然數(shù)2都不認(rèn)識(shí),所以計(jì)算機(jī)是比較2的,而當(dāng)數(shù)字小到一定的程度計(jì)算機(jī)也不認(rèn)識(shí)如:它的極限就是1.2*10負(fù)38次方,而一般的情況下我們就把小于0.00001絕對(duì)值得數(shù)認(rèn)為是0.
   if ((x >= - EPSINON) && (x <= EPSINON)
   指針變量:  if(var==NULL)
  剖析:
  考查對(duì)0值判斷的“內(nèi)功”,BOOL型變量的0判斷完全可以寫成if(var==0),而int型變量也可以寫成if(!var),指針變量的判斷也
可以寫成if(!var),上述寫法雖然程序都能正確運(yùn)行,但是未能清晰地表達(dá)程序的意思。
   一般的,如果想讓if判斷一個(gè)變量的“真”、“假”,應(yīng)直接使用if(var)、if(!var),表明其為“邏輯”判斷;如果用if判斷一個(gè)數(shù)
值型變 量(short、int、long等),應(yīng)該用if(var==0),表明是與0進(jìn)行“數(shù)值”上的比較;而判斷指針則適宜用if(var==NULL), 這是
一種很好的編程習(xí)慣。
  浮點(diǎn)型變量并不精確,所以不可將float變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“<=”形式。如果寫
成if (x == 0.0),則判為錯(cuò),得0分。







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1