int a = 2;
int b = a + 3 * a++;
//a + 3 * a++ 的运算方向是从最左边开始按一个一个的模块(模块的分界线是+号)的方式算好每一个模块中的值,最后再进行拼接(此时,
先将2赋值给a,也就是a + 3 * a++中的最 左边的a = 2)
//然后再开始算a++,第二步算3 * a++,第三步才是a加上(3 * a++的结果)
//a++:int a = 2; int temp = a; a = (int)(a + 1); return temp; (此时temp = 2)
//此时3 * a = a * temp = 6
//b = 8
int a = 2;
int b = a++ + 3 * a;
//a++ + 3 * a 的运算方向与上面相同(此时,先算a++的值)
//a++:int a = 2; int temp = a; a = (int)(a + 1); return temp; //一号模块算完了temp = 2
//然后,开始算二号模块中的值,此时a = 3(因为,算一号模块的时候,a = (int)(a + 1); ),3 * 3 = 9
//最后把一号模块和二号模块拼接起来,求和2 + 9 = 11
|