演算子の優先順位によると、コンマ演算子の優先順位は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)