各種資料型別與零值比較

2021-07-25 07:09:38 字數 1208 閱讀 3142

布林變數與零值比較

【規則1】不可將布林變數直接與true、false或者1、0進行比較。

根據布林型別的語義,零值為「假」(記為false),任何非零值都是「真」(記為true)。true的值究竟是什麼並沒有統一的標準。例如visual c++ 將true定義為1,而visualbasic則將true定義為-1。

假設布林變數名字為flag,它與零值比較的標 準if語句如下:

if (flag)    // 

表示flag為真

if (!flag)    // 

表示flag為假

整型變數與零值比較

【規則2】應當將整型變數用 「==」或「!=」直接與0比較。

假設整型變數的名字為value,它與零值比較的標準if語句如下:

if (value == 0)  

if(value != 0)

不可模仿布林變數的風格而寫成

if (value)    // 

會讓人誤解 value是布林變數

if (!value)

浮點變數與零值比較

【規則3】不可將浮點變數用 「==」或「!=」與任何數字比較。

千萬要留意,無論是float還是double型別的變數,都有精度限制。所以一定要避免將浮點變數用「==」 或「!=」與數字比較,應該設法轉化成「>=」或「<=」形式。

假設浮點變數的名字為x,應當將  

if (x == 0.0)     // 

隱含錯誤的比較

轉化為if ((x>=-epsinon) &&(x<=epsinon))

其中epsinon是允許的誤差(即精度)。

指標變數與零值比較

【規則4】應當將指標變數用 「==」或「!=」與null比較。

指標變數的零值是「空」(記為null)。儘管null的值與0相同,但是兩者意義不同。假設指標變數的名 字為p,它與零值比較的標準if語句如下:

if (p ==null)    // p

與null顯式比較,強調p是指標變數

if (p != null)

各種資料型別與零值比較規範

1 布林變數與零值比較 不可將布林變數直接與true false或者1 0進行比較。根據布林型別的語義,零值為 假 記為false 任何非零值都是 真 記為true true的值究竟是什麼並沒有統一的標準。例如visual c 將true定義為1,而visualbasic則將true定義為 1。假設...

各種資料型別和0比較

不可將布林變數直接與true false或者1 0進行比較。假設布林變數名字為flag,它與零值比較的標 準if語句如下 if flag 表示flag為真 if flag 表示flag為假 其他為不良寫法。應當將整型變數用 或 直接與0比較。假設整型變數的名字為value,它與零值比較的標準if語句...

各種資料型別OuO

char 1 個位元組 128 到 127 或者 0 到 255 unsigned char 1 個位元組 0 到 255 signed char 1 個位元組 128 到 127 int4 個位元組 2147483648 到 2147483647 unsigned int 4 個位元組 0 到 4...