4.7 我怎樣才能理解複雜表達式?``序列點" 是什麼?

序列點是一個時間點(在整個表達式全部計算完畢之後或在 ||、  &&、 ? : 或逗號 運算符處, 或在函數調用之前), 此刻塵埃落定, 所有的副作用都已確保結束。 ANSI/ISO C 標準這樣描述:
在上一個和下一個序列點之間, 一個對像所保存的值至多只能被表達式的 計算修改一次。而且前一個值只能用於決定將要保存的值。

第二句話比較費解。它說在一個表達式中如果某個對象需要寫入, 則在同一表達式中對該對象的訪問應該只局限於直接用於計算將要 寫入的值。這條規則有效地限制了只有能確保在修改之前才訪問 變量的表達式為合法。例如 i = i+1 合法, 而 a[i] = i++ 則非法 (參見問題 3.1)。

參見下邊的問題 3.8

參考資料: [ISO, Sec. 5.1.2.3, Sec. 6.3, Sec. 6.6, Annex C]; [Rationale, Sec. 2.1.2.3]; [H&S, Sec. 7.12.1 pp. 228-9]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)