変数を連続的に繰り返し修正する例を見てみましょう(JavaとCの比較)

1011 ワード

まず、この式を分析します.
                                       x+=expr          //exprは式を表す
                  1.   Javaの場合:      xの値はexprを計算する前に抽出される.
                   2.  Cの場合:        xの値はexprを計算した後に抽出される.
例を見てみましょう.
                int x=2;
		int y=3;
		x+=y+=x+=y;

          すみません、以上のコードを実行した后、xとyの値はそれぞれいくらになりましたか?
 Java :         x   10;y   8。

 C :              x   13;y   8。

 分析してみましょう
                                                    Javaで:前に抽出されたため
                  1.  まず一番右の式:x+=y
                        xを中間変数tempに抽出します. temp 1=x(このときtemp=2).x+=yを実行するとxは5になる.
                  2.次は中間式:y+=x
                        まずy,temp 2=yを抽出する.y+=xを実行するとy=temp 1+x=3+5となり、yは8となる.
                  3.最後に一番左のこの式に着きました:x+=y
                         ここで実際に実行されるのはx=temp 1+y=2+8(実際にJavaは中間変数メカニズムを用いている)
                         ここでC言語はx=x+y=5+8(C言語には中間変数機構がない)を実行する.