#include<stdio.h>
int main(void) {
int a=(1, 2), 3;
printf("%d", a);
return 0;
}
出力:2
出力が2である方法を説明できますか?
結果として:
a = x, y => x
a = (i, j) => j
したがって、次の場合:
x = (1 , 2)
a = (1 , 2) , 3 => 2
前述のように、 ここ :
コンマ演算子は、セミコロンがステートメントを終了する方法に類似した方法で式(値を持つ)を分離し、式のシーケンスが括弧で囲まれた方法のシーケンスと同様に括弧で囲まれます:(a、b、c)はシーケンスですコンマで区切られた式の最後の式cに評価されますが、{a; b; c;}は一連のステートメントであり、評価されません。コンマは、2つの式(コンマで区切られた式)の間でのみ使用できます。セミコロンは(非ブロック)ステートメントの終わりにあり、セミコロンはステートメントを終了します。
コンマ演算子は、C演算子の中で最も優先順位が低く、シーケンスポイントとして機能します。コンマとセミコロンの組み合わせでは、セミコロンはステートメントを分離しますが、通常の句読点としての使用に応じてステートメント内でコンマが発生するため、セミコロンはコンマよりも優先順位が低くなります。 c、dは(a、b)としてグループ化されます。 (c、d)これらは2つの別個のステートメントであるため。
これがあなたの質問に答えることを願っています。