1

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

理解できないコード行に出くわしました。似たようなものをどこかで見た記憶があります。

int x,y,z;
x=(y=2,z=2*y,z+4);

x に割り当てられた値が 8 であることはわかっています。誰かが理由を説明できますか?

4

2 に答える 2

4

これは次と同等です。

 y = 2;      // y == 2
 z = 2 * y;  // z == 4
 x = z + 4;  // x == 8

コンマ演算子のオペランドは左から右に評価され、結果は右のオペランドの値になります。

于 2012-12-31T12:03:08.387 に答える
0

コンマ演算子は前の値を区切り、コンマ内の最後の項目が結果として返されます。

a = b,c 

c の値を a に割り当てます。ここの括弧は本質的に何もしません、ところで

したがって、2 つの代入があり、その結果が返されて x に代入されるステートメントがあります。

于 2012-12-31T12:05:24.553 に答える