关于++a和a++的运算
++a会在此步骤之前进行+=1的运算;
a++会在此步骤之后进行+=1的运算;
在单个层次的运算中,两者等价;
即int b=++a,等价于int b=a++
但在多个层次的运算中,结果就不同了
以此为例:
int a = 1;
int b = a++ * (a++ + ++a);
其等价于:
1*(2+4);
先取值得到1,然后++将a赋值为2,再取值得到2,然后++将a赋值为3,然后先++将a赋值为4,再取值得到4;
而将公式改变一下:
int a = 1;
int b = ++a * (++a + a++);
则等价于:
2*(3+3)
先++将a赋值为2,然后取值得到2;先++将a赋值为3,然后取值得到3,然后先取值得到3,再++将a赋值为4;
总结:++的计算遵循:先全部取值再统一计算的规则。其中++a为:先++再取值;a++为:先取值再++。
再举几个常见的例子:
在a=1的情况下:
a++ + a++ = 3; ==2a+1
++a + ++a = 5; ==2a+3
a++ + ++a = 4; ==2a+2
++a + a++ = 4; ==2a+2
浙公网安备 33010602011771号