4

重複の可能性:
C++ コンマ演算子
C コンマ演算子の使用

私は C++ を初めて使用するわけではありませんが、次のコードを目にするのはこれが初めてです。

int a=0;
int b=(a=2,a+1);

それが C++ コードです。ここで何が起こっているのか教えてもらえますか? 変数 b はどのようにして値 3 を取得するのでしょうか?

4

2 に答える 2

13

このコードは次と同等です。

int a = 2 ; 
int b = a + 1 ;

コンマの左側の最初の式が評価され、次に右側の式が評価されます。最も右側の式の結果は、=sign の左側の変数に格納されます。

詳細については、カンマ演算子を調べてください。

http://en.wikipedia.org/wiki/Comma_o​​perator

于 2012-10-10T16:49:08.433 に答える
3

(a = 2, a + 1);通常、演算子 (a, b) は b を返し、(a, b) の計算は右から左に開始されるため、3 を返します。したがって、あなたの場合、(a = 2, a + 1)return a + 1、および operatora = 2が実行された後はa + 1return 3.

于 2012-10-10T16:51:51.353 に答える