當if語句的條件是賦值語句時,如何判斷
當if語句中的條件為賦值語句時,實際上是將賦值后的結果與0進行比較。
比如下面的代碼: #include
c語言的If表達式可以有賦值語句嗎
if(a=2)
{
b=2;
c=4;
}
else d=3;
這個語句沒有語法錯誤(可能會有警告),是可以執行的。
但是這個語句永遠沒有機會執行else部分。
a=2賦值表達式的計算結果就是2,當這個表達式出現在if語句邏輯表達式位置上的時候,它的計算結果是被當作邏輯值處理的,在C語言中用整型數表示邏輯量,非零表示“真”,所以這是一個永真式;這個if的邏輯條件永遠不會為假。
也就是說,這里所表達的邏輯條件并不是“a的內容是否等于2”,而是向變量a中送入數據2。