Q
關於用C
1
A
回答
11
在這一行:
c=(a,b)
括號的意思是, 「計算表達式a,b
第一,然後將值賦給c
」。在這種情況下,b
被分配,因爲它是a,b
的右側表達式。在C中,comma expressions從左到右進行評估,總體值是最右側表達式的值。
雖然在該行:
c=a,b
分配是作爲整個左手側的第一評價,這是c=a
。這是因爲相同的=
運算符優先於逗號運算符,
。因此,b
根本不會被分配到c
。它相當於:
(c=a),b
3
在C中,逗號運算符評估第一個操作數,然後丟棄它,然後評估右操作數。所以結果是正確的操作數。它的優先級最低。
c = (a,b)
()的優先級高於,所以a,b先評估。結果是b。所以c = b。
但是當使用c = a時,b assignment =具有更高的優先級。所以c = a先評估。因此a被分配給c。
查詢this瞭解更多詳情。
相關問題
- 1. 關於用C
- 2. 關於用C
- 3. 關於用C
- 4. 關於使用C
- 5. 關於在C/C++
- 6. 關於用C的scanf
- 7. 關於用C++回報
- 8. 關於C++庫
- 9. 關於c#asp.net
- 10. 關於C++
- 11. 關於[ThreadStatic()] C#
- 12. 關於在C++
- 13. 關於C++
- 14. 關於C++
- 15. 關於相關對象(C#)
- 16. 關於Linux中的C/C++
- 17. 問題關於C++
- 18. 關於在Objective-C
- 19. 關於C指針
- 20. C++關於變量
- 21. 混淆關於C#
- 22. 關於Linux C - UUID
- 23. 關於?和:在C++
- 24. 心靈關於C#
- 25. 關於使用ManualResetEvent用法c#?
- 26. 關於讀取系統調用c
- 27. 關於傳遞變量用C
- 28. 關於使用裝配與c
- 29. C#:關於使用泛型和採摘
- 30. 思考用C工會,關於MISRA
不要使用'void main()' - 人們對此感到不安。標準是'int main(void)'或'int main(int argc,char ** argv)'。 – 2010-11-15 04:38:15
缺少主要的括號{}。 – abelenky 2010-11-16 06:13:16