C++與零值比較

一、布爾值與零值的比較spa

1 if(flag)//if爲真
2 if(!flag)//if爲假

 其它都爲不良風格:指針

1 if (flag == TRUE)   
2 if (flag == 1 )     
3 if (flag == FALSE)  
4 if (flag == 0)  

 二、整形值與零值的比較code

假設整型變量的名字爲value,它與零值比較的標準if語句以下:blog

1 if (value == 0)  
2 if (value != 0)

不良風格:class

1 if (value)    // 會讓人誤解 value是布爾變量
2 
3 if (!value) 

 三、浮點值與零值的比較變量

  不管是float仍是double類型的變量,都有精度限制。因此必定要避免將浮點變量用「==」或「!=」與數字比較,應該設法轉化成「>=」或「<=」形式。float

    假設浮點變量的名字爲x,應當將  di

1 if (x == 0.0)     // 隱含錯誤的比較

轉化爲co

1 const float EPSINON = 0.00001;  
2 if ((x>=-EPSINON) && (x<=EPSINON))

其中EPSINON是容許的偏差(即精度)。數字


四、指針值與零值的比較:

指針變量的零值是「空」(記爲NULL)。儘管NULL的值與0相同,可是二者意義不一樣。假設指針變量的名字爲p,它與零值比較的標準if語句以下:

1 if (p == NULL)    // p與NULL顯式比較,強調p是指針變量
2 if (p != NULL)

不要寫成

1 if (p == 0)   // 容易讓人誤解p是整型變量
2 if (p != 0)    

或者

1 if (p)            // 容易讓人誤解p是布爾變量
2 if (!p)      
相關文章
相關標籤/搜索