float X與零值的比較:
if(x<0.000001&&x>-0.000001)
注:浮點數是不可以直接比較大小的,因為是非精確存儲,只能設置一個精度(0.000001為允許對誤差即精度),然後在允許誤差內的就認為是相等的;對浮點型數比較的時候用==是不對的。
int X與零值的比較:
if(X==0) if (X!=0)
指針char *p與零值的比較:
if (NULL==p) if(NULL!=p)
注:錯誤的寫法
bool flat和零值的比較:
if (flag) if(!flag )
注:根據布爾類型的語義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE 的值究竟是什麼並沒有統一的標准。例如Visual C++ 將TRUE 定義為1,而Visual Basic 則將TRUE 定義為-1。所以我們不可以將布爾變量直接與TRUE、FALSE 或者1、0 進行比較。