关于++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
posted @ 2020-10-22 11:04  缀满繁星的夜空  阅读(2304)  评论(0)    收藏  举报