bool,int,float和指標變數與“零值”的比較?

Tags: 變數, 指標, 編帶,

這個是現在開發面試題中最常見的一題,我們現在在程式設計中可能沒有注意到這些變數與零值進行比較的區別,因為及時寫的不規範也不會報錯。今天小編帶著大家一起來看看正確規範的寫法。

bool,int,float和指標變數與“零值”的比較

方法/步驟

假設布林變數名字為flag,它與零值比較的標準if語句如下: if (flag) // 表示flag為真 if (!flag) // 表示flag為假 其它的用法都屬於不良風格,例如: if (flag == TRUE) if (flag == 1 ) if (flag == FALSE) if (flag == 0)

bool,int,float和指標變數與“零值”的比較

假設整型變數的名字為value,它與零值比較的標準if語句如下: if (value == 0) if (value != 0) 不可模仿布林變數的風格而寫成 if (value) // 會讓人誤解 value是布林變數 if (!value)

bool,int,float和指標變數與“零值”的比較

假設浮點變數的名字為x,應當將 if (x == 0.0) // 隱含錯誤的比較 轉化為 if ((x> =-EPSINON) && (x <=EPSINON)) 其中EPSINON是允許的誤差(即精度)

bool,int,float和指標變數與“零值”的比較

指標變數的零值是“空”(記為NULL)。儘管NULL的值與0相同,但是兩者意義不同。假設指標變數的名字為p,它與零值比較的標準if語句如下: if (p == NULL) // p與NULL顯式比較,強調p是指標變數 if (p != NULL) 不要寫成 if (p == 0) // 容易讓人誤解p是整型變數 if (p != 0) 或者 if (p) // 容易讓人誤解p是布林變數 if (!p)

bool,int,float和指標變數與“零值”的比較

注意事項

一般的,如果想讓if判斷一個變數的“真”、“假”,應直接使用if(var)、if(!var),表明其為“邏輯”判斷;如果用if判斷一個數值型變數(short、int、long等),應該用if(var==0),表明是與0進行“數值”上的比較;而判斷指標則適宜用if(var==NULL),這是一種很好的程式設計習慣。

相關問題答案