共用方式為


循序評估運算子

循序評估運算子,也稱為 「 逗號運算子 」 會評估兩個運算元以循序方式是從左到右。

語法

  • 運算式
    指派運算式

    運算式**,** 指派運算式

循序評估運算子的左的運算元的評估方式就void運算式。 運算的結果會有相同的值和型別為右運算元。 每一個運算元可以是任何型別。 循序評估運算子不會執行在它的運算元型別轉換時並不會產生值 (l-value)。 在第一個運算元,這表示,如果左運算元的計算所得的副作用會完成,才能開始右邊運算元的評估之後沒有是序列點。 請參閱序列點如需詳細資訊。

循序評估運算子最常用來評估兩個或多個運算式內容中的只能有一個運算式允許的位置。

逗號可用來做某些內容中的分隔符號。 不過,您必須小心不要混淆使用逗點來區隔其用途為運算子。 兩種用法是完全不同。

範例

本範例說明了循序評估運算子:

for ( i = j = 1; i + j < 20; i += i, j-- );

在這個範例中,每一個運算元的陳述式的第三個運算式則會分別評估。 左的運算元i += i會評估第一次。 然後右運算元中, j––,會評估。

func_one( x, y + 2, z );
func_two( (x--, y + 2), z );

函式中呼叫func_one,並以逗點分隔的三個引數傳遞: x, y + 2,以及z。 在函式呼叫func_two,括號會強制編譯器解譯為循序評估運算子的第一個逗號。 這個函式呼叫會傳遞兩個引數func_two。 第一個引數會循序評估作業的結果, (x--, y + 2),它具有的值和運算式的型別y + 2。 第二個引數是z。

請參閱

參考

逗號運算子:,