2014-01-31 41 views
1

我知道這可能是愚蠢的,簡單的問題,但我非常新的programming.I有以下問題有關的,如果操作者我一個program.Here看到的是代碼:ç奇if語句

d= -12.4; 
    if(d) printf("%d \n", abs((int)d)); 
    else printf("%d \n",(int)(d)); 

爲什麼打印12而不是-12。 我的意思是爲什麼這個說法甚至是正確的?

if(d) 

我以爲只有一個變量的語句甚至在語法上都不正確。

回答

6

基本上

if(d) 

相同

if(d != 0) 

它是完全有效的代碼。

+0

哦,現在有道理,謝謝。 –

+1

@ user3183584此外,您正在使用%d打印abs()值,這是浮動部分未出現的原因 –

6

在C中,任何不爲零的表達式都被認爲是真的。標識符(如變量名稱)是一個有效的表達式,否則您將無法在任何地方使用變量名稱。