演算子の優先順位によると、コンマ演算子の優先順位はoperator=
、よりも低いため、x = 2,3;
と同等(x = 2),3;
です。(演算子の優先順位は、演算子が引数にバインドされる方法を決定します。優先順位に応じて、他の演算子よりも厳密または緩くなります。)
カンマ式は(x = 2),3
ここにあり、ではないことに注意してください2,3
。x = 2
最初に評価され(そしてその副作用が完了し)、次に結果が破棄され、次に3
評価されます(実際には何もしません)。そのため、の値はx
です2
。これ3
はコンマ式全体(つまりx = 2,3
)の結果であり、への割り当てには使用されないことに注意してくださいx
。(に変更するとx = (2,3);
、x
が割り当てられ3
ます。)
の場合return 2,3;
、コンマ式は2,3
、2
評価され、その結果は破棄3
され、コンマ式全体の結果として評価されて返されます。これは、後でreturnステートメントによって返されます。
式とステートメントに関する追加情報
式は、計算を指定する一連の演算子とそのオペランドです。
x = 2,3;
は式ステートメント、x = 2,3
はここでの式です。
式の後にセミコロンが続くのはステートメントです。
構文: attr(optional) expression(optional) ; (1)
return 2,3;
はジャンプステートメント(returnステートメント)で2,3
あり、ここでの式です。
構文: attr(optional) return expression(optional) ; (1)