一、布爾值與零值的比較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)