筆試時候遇到的問題,在此作一下記錄。spa
1.if語句中的布爾變量與零值做比較
不能用布爾變量與true,false,1,0直接做比較。布爾變量類型的語義是:零值爲「假」,任何非零值都表示「真」。由於true的值並無惟一的標準,所以不能用布爾變量與它直接進行比較。
假設布爾變量爲flag,那麼它與零值進行比較時if語句應該是
if(flag)\\表示若是flag爲真
if(!flag)\\表示若是flag爲假
不能用如下的這些方法
if(flag==1)
if(flag==true)
if(flag==false)
if(flag!=0) .net
2.if語句中 int 變量與零值做比較指針
整型變量中應該用「==」「!=」直接與零做比較,例如:blog
if(value==0)ip
if(value!=0)變量
不該該用float
if(value)方法
if(!value)im
這樣容易被誤解爲value是布爾變量。筆試
3.if語句中浮點變量與零值做比較
不能將浮點變量用「==」 「!=」與任何數字做比較。
float和double類型的變量都有精度限制。應該用「>=」「<=」的形式進行比較。
應爲
if((x>=-MIN) && (x<=MIN))
MIN能夠是0.00000001。
不能直接
if(x==0.00)
4.if語句中指針變量與零值做比較
指針變量的零值是「空」,所以應該與「NULL」做比較。雖然「NULL」表明0,可是有不一樣的意義。
if語句以下:
if(p==NULL)
不一樣的形式表明不一樣的含義,所以要正確的表達想要表達的意思,應該用正確的方式寫代碼。
參考:https://blog.csdn.net/xyzbaihaiping/article/details/51124943