共用方式為


逗號運算子:,

允許群組中應該只有一列的兩個陳述式。

expression , expression

備註

逗號運算子具有由左到右的順序關聯性 (Associativity)。 兩個以逗號分隔的運算式會向左到右評估。 永遠會評估左邊的運算元,且所有副作用皆已都完成之前會評估右邊的運算元。

逗號可用來做某些內容,例如函式引數清單中的分隔符號。 請勿混淆使用逗點來區隔其用途為運算子。 兩種用法是完全不同。

請考慮運算式

e1 , e2

型別和運算式的值都是型別和值 e2。 評估的結果 e1 會被捨棄。 如果右邊的運算元是左值,結果會是左值。

在正常使用逗號來區隔 (例如在函式或彙總初始設定式的實質引數),逗號運算子和運算元必須括在括號中。 例如:

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。

範例

// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
   int i = 10, b = 20, c= 30;
   i = b, c;
   printf("%i\n", i);

   i = (b, c);
   printf("%i\n", i);
}
  

請參閱

參考

二元運算子的運算式

C + + 運算子

運算子優先順序和順序關聯性

概念

循序評估運算子