BOOL,float和指標與「零值」比較的if語句

2021-07-05 14:48:19 字數 1091 閱讀 9127

這道筆試題也是經常遇到的,雖然看起來很簡單,但是最好將這類語句寫得規範化,這樣大有好處。

題目是這樣的:

請填寫bool,float和指標與「零值「比較的if語句

a)bool flag 與零值比較的if語句

b)float x 與零值比較的if語句

c)char *p 與零值比較的if語句

答: a:if(!flag)//flag等於零

if(flag) //flag 不等於零

b:const float epsilon 0.00001

if((x <= epsilon) && (x >= -epsilon) ) //x等於0

if((x >epsilon) && (x < -epsilon) ) //x不等於0

c: if(null == p) 或 if(null != p)

以下是針對float型別的測試**

#include 

int main(void)

執行結果:

epsilon=0.000001

x1=0.000000

isnot

0.000000

x2=0.000001is0

x3=0.000001

isnot

0epsilon=0.0000001

x1=0.000000

isnot

0.000000

x2=0.000000is0

x3=0.000000

isnot

0--------------------------------

process exited after

0.02413 seconds with

return value 21

請按任意鍵繼續. . .

float型別的精度值可以是6位,即0.00001,也可以是7位,即0.0000001

根據以上程式的執行結果來看,選擇6位精度值,和選擇7位精度值並沒有太大區別,看不出孰勝孰劣,但常見的一般是用6位的精度值,可能是因為float的精度為6~7位,但絕對保證的是6位。

與零值比較

當通過用if 值 0 進行比較的時候 要看這個值是什麼型別的 具體如下 1.當值為 int,char型的時候 應用 if int val 0 或者 if int val 0 2.當值為指標變數的時候 應用if null p 或者if null p 注 null最好寫在左邊 因為如果在右邊的話容易寫成...

與零值比較

以下摘自 林銳 高質量c c程式設計指南 布林變數與零值比較 不可將布林變數直接與true false或者1 0進行比較。假設布林變數名字為flag,它與零值比較的標準if語句如下 if flag 表示flag為真 if flag 表示flag為假 整型變數與零值比較 應當將整型變數用 或 直接與0...

變數與零值比較

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