2017-06-03 232 views
-2
#include<stdio.h> 
int main() 
{ 
    int a=9; 
    if (a=5) 
     printf("a is five \t"); 
    else 
     printf("a is not five \t"); 
    printf(" Value of a is %d \n",a); 
    return 0; 
} 

以下程序給出的輸出.... a is five Value of a is 5請解釋輸出

請解釋一下這個

+2

'a = 5' typo as'a == 5' – BLUEPIXY

+0

爲了擴展@BLUEPIXY的註釋,您的'if'語句正在檢查將變量a賦值爲5是否爲真。數學表達式「a = 5」被評估爲真(「a」被成功設置爲整數「5」)。 – Deathgrip

+0

@Shushrut:你想要什麼解釋?該程序完全按照其應有的方式工作。考慮到這一點,你的問題應該是關於什麼? – AnT

回答

2
if (a=5) 

其分配5到,也這讓if狀況的真實所以printf("a is five \t");這聲明得到執行

+0

請解釋如何 – Shushrut

+0

@Shushrut表達式'a = 5'評估爲5,並且任何非0值爲真。您經常會看到類似它的代碼,這是一種方便的方式,既可以檢查空行,也可以在一行上分配指針。 – George

+0

如果((a = 5)== 5),你可以運行這個條件,以更好地理解喬治解釋 – Pras

0
if(a=5) 

不是比較,這是一項任務。換句話說,你不是在問一個是否是五,你是在設定一個到五。