共用方式為


C + + 的序列點

運算式可以修改物件的值一次連續之間 「 序列點 」。

Microsoft 專有的

C + + 語言定義目前未指定序列點。 Microsoft C++ 使用相同的序列點做為 ANSI C 的任何涉及的 c 運算子的運算式並不涉及多載運算子。 當多載運算子時,語意變更從函式呼叫的順序來排序的運算子。 Microsoft C++ 會使用下列的序列點:

  • 左運算元的邏輯 AND 運算子 (& &)。 邏輯 AND 運算子的左的運算元完全評估,所有副作用完成都後再繼續進行。 但是並不會被評估邏輯 AND 運算子的右運算元的保證。

  • 邏輯 OR 運算子 (|) 的左的運算元。 邏輯 OR 運算子的左的運算元完全評估,所有的副作用完成後再繼續進行。 但是並不會被評估之邏輯 OR 運算子的右運算元的保證。

  • 逗號運算子的左的運算元。 逗號運算子的左的運算元完全評估,所有的副作用完成後再繼續進行。 一定會評估這兩個逗號運算子的運算元。

  • 函式呼叫運算子。 會評估函式呼叫運算式和引數的函式,包括預設引數,而且所有副作用都完成於函式的項目。 沒有任何指定的順序的各項引數或函式呼叫運算式的評估。

  • 條件運算子的第一個運算元。 條件運算子的第一個運算元完全評估,所有的副作用完成後再繼續進行。

  • 完整的初始設定運算式,例如宣告陳述式中初始化的結尾結束。

  • 中的運算式陳述式的運算式。 運算陳述式是由選擇性的運算式,後面跟著分號 (;) 所組成。 完全評估的運算式來產生其副作用。

  • 控制選取範圍內的運算式 (如果或切換) 陳述式。 完全評估運算式和執行程式碼取決於選取範圍之前完成的所有副作用。

  • 控制的一段時間的運算式,或執行陳述式。 完全會評估運算式,並且所有的側邊效果段中的下一個反覆項目中的任何陳述式之前完成,否則執行迴圈,會執行。

  • 每三個運算式的陳述式。 會完整地評估每個運算式,並移到下一個運算式之前,完成所有的副作用。

  • 中的 return 陳述式的運算式。 完全評估運算式,並傳回給呼叫的函式的控制項之前完成的所有副作用。

請參閱

參考

運算式的語意