C 的序列點
連續之間 「 序列點 」 物件的值可以一次修改的運算式。 C 語言定義了下列的序列點:
左運算元的邏輯層和運算子 (& &)。 邏輯的左的運算元式和運算子會完全評估,以及所有副作用都完成再繼續執行。 如果左邊的運算元會評估為 false (0),則不會評估另一個運算元。
左運算元的邏輯 OR 運算子 (||)。 邏輯 OR 運算子的左的運算元完全評估,所有的副作用完成再繼續執行。 如果左邊的運算元會評估為 true (非零),則不會評估另一個運算元。
逗號運算子的左的運算元。 逗號運算子的左的運算元完全評估,所有的副作用完成再繼續執行。 一定會評估這兩個逗號運算子的運算元。 請注意,逗號運算子函式中的呼叫並不保證評估的順序。
函式呼叫運算子。 會評估所有的引數的函式,函式的項目之前完成的所有副作用。 未不指定任何的順序,在引數的評估。
條件運算子的第一個運算元。 條件運算子的第一個運算元完全評估,所有的副作用完成再繼續執行。
完整的初始化運算式 (也就是不屬於另一個運算式,例如宣告陳述式中初始化的結尾) 結尾。
中的運算式陳述式的運算式。 運算陳述式所組成的選擇性運算式,後面跟著分號 (;). 評估的運算式來產生其副作用而沒有遵循這個評估是序列點。
控制選取範圍內的運算式 (如果或switch) 陳述式。 完全評估運算式,取決於選取範圍的程式碼執行之前,完成所有的副作用。
控制運算式的while或執行陳述式。 完全評估運算式,並完成後的下一個反覆項目中的任何陳述式的所有副作用while或執行會執行迴圈。
每三個運算式的的陳述式。 會完整地評估運算式,並完成後的下一個反覆項目中的任何陳述式的所有副作用的會執行迴圈。
在運算式return陳述式。 完全評估運算式,控制項會返回至呼叫的函式之前,完成所有副作用。