コンマ演算子: 、
1 が予期される 2 種類のステートメントをグループ化できます。
expression , expression
解説
コンマ演算子の結合規則は、左から右方向です。コンマで区切られた 2 番目の式は評価された左から右です。左のオペランドは常に評価され右オペランドが評価される前にすべての副作用は完了です。
コンマは関数の引数リストなどの区切り記号として使用する状況で使用できます。演算子として使用して区切り記号としてコンマの使用を混同しないでください ; 2 個の使用はまったく別のものです。
式があるとします。
e1e2
式の型と値は e2 の型と値が ; e1 を 評価した結果は破棄されます。結果を右オペランドは左辺値で左辺値です。
コンマを区切り記号としては (たとえば関数または集約の初期化子に実引数) で使用されているコンマ演算子とオペランドはかっこで囲む必要があります。次に例を示します。
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
上で func_one への関数呼び出しではコンマで区切られた 3 個の引数が渡された場合 : xy + 2 と z。func_two への関数呼び出しではかっこはコンパイラはシーケンシャル評価の演算子として最初のコンマを解釈します。この関数は func_two 引数に 2 を渡します。最初の引数は y + 2 式の値と型を持つ順次評価の操作 (x--, y + 2) の結果は; 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);
}