1
A
回答
8
這是未定義的行爲,因爲var
被修改了幾次而沒有序列點之間。例如,序列點可以是;
。然而,參數列表中的逗號不會引入序列點,操作數的評估順序也是未定義的(可以說,代碼是雙重未定義的......)。
+4
操作數評估的順序不是未定義的,它是未指定的(有一個評估順序,實現不需要記錄它,也不需要保持一致 - 即使在同一代碼行的兩次執行之間)。 – AProgrammer 2010-06-24 11:32:04
+0
您可能想要考慮正在處理的函數參數序列。 – YeenFei 2010-06-24 12:55:57
關於SO上的未定義行爲,有很多非常類似的問題,例如, http://stackoverflow.com/questions/2902638/post-and-pre-increment-in-c和更多... – 2010-06-24 11:29:06