2010-03-06 37 views

回答

5

if語句是等價的。

+0

爲什麼「粗略」? – Felixyz 2010-03-06 14:39:57

+0

@Felixyz:你說得對,那是不必要的措辭。我已經添加了更多細節的鏈接。 – 2010-03-06 19:38:26

1

它正在測試val是否包含NULL指針。如果你說過,

char * val = NULL; 

if (val) { 
    ... 
} 

測試會失敗。

+0

你的意思是它會失敗? – Tronic 2010-03-06 11:18:41

+0

@Tronic當然,我做過 - 早餐之前絕對不會在SO上發佈! – 2010-03-06 11:19:33

1

val是否爲空指針。

2

這是檢查if (val != 0)。在C中,所有非零值都爲真,零爲假。

1

該聲明檢查與someString相同的val是否爲非NULL。一般if (v)if (v!=0)的快捷方式。

2

val是指向char的指針。這可以設置爲任何地址 - 無效或無效 - 。 if語句將只檢查是否VAL不爲空:

if(val)

相當於

if(NULL != val)

相當於

if((void*)0 != val)

不過,指針可以指向一個無效的位置,例如不在的內存地址空間的應用程序。因此,將指針初始化爲0非常重要,否則它們將指向未定義的位置。在最壞的情況下,該位置可能是有效的,您將不會注意到該錯誤。

1

正如其他人所說,它正在檢查char指針是否不爲NULL。如果您想檢查字符串是否爲空,請嘗試strlen

0

val爲指針,這種說法等於如果(VAL!= 0),而0也被定義爲NULL,所以它會檢查指針是否指向空地址,請記住,空字符串指針與空字符串不一樣

0

上面的if條件是檢查指針是否指向非空字符串。如果該指針指向任何非空字符串,則條件將爲true。否則,false。