重複の可能性:
C++ コンマ演算子
C コンマ演算子の使用
私は C++ を初めて使用するわけではありませんが、次のコードを目にするのはこれが初めてです。
int a=0;
int b=(a=2,a+1);
それが C++ コードです。ここで何が起こっているのか教えてもらえますか? 変数 b はどのようにして値 3 を取得するのでしょうか?
重複の可能性:
C++ コンマ演算子
C コンマ演算子の使用
私は C++ を初めて使用するわけではありませんが、次のコードを目にするのはこれが初めてです。
int a=0;
int b=(a=2,a+1);
それが C++ コードです。ここで何が起こっているのか教えてもらえますか? 変数 b はどのようにして値 3 を取得するのでしょうか?
このコードは次と同等です。
int a = 2 ;
int b = a + 1 ;
コンマの左側の最初の式が評価され、次に右側の式が評価されます。最も右側の式の結果は、=
sign の左側の変数に格納されます。
詳細については、カンマ演算子を調べてください。
(a = 2, a + 1);
通常、演算子 (a, b) は b を返し、(a, b) の計算は右から左に開始されるため、3 を返します。したがって、あなたの場合、(a = 2, a + 1)
return a + 1
、および operatora = 2
が実行された後はa + 1
return 3.