-1
首先這是我的工作的問題:如何評估這些C表達式?
評估下列各表達式中C:
int x=1, y=7, z=0; char a='m';
1)
a ? y-x : x–y
2)x = 5 ? (y = z) : (z = y)
我明白其餘的問題,但號碼(1)混淆了我......是不是它應該是一個邏輯表達式? 我的意思是'm'
不能是真的也不是假的;我怎樣才能回答這個問題?它只是「錯誤」?還是有我錯過的東西?
對於數(2)(z=y)
應該執行其改變z
至7,但是不是應該是x == 5
和我嘗試了在終端上和它的變化既x
和y
到0
的發言。
我錯過了什麼?
''m''是非零,麥角它的計算結果爲TRUE;。 – UnholySheep
您可能想了解[*運算符優先級*](http://en.cppreference.com/w/c/language/operator_precedence)。 –
請注意,不會執行'z = y'; 'y = z'會被執行 - '(test)? if-true:if-false;'是三元結構。 –