本帖最后由 Jr_711 于 2014-8-12 19:32 编辑
b=(a++)+(++a)
1>首先,内存只会一步一步运算,每进行一步,内存内的值都可能改变
2>然后,要把a++和++a各当做一个整体来看,
并理解a++是先使用后加一(影响下次使用),
++a是先加一再使用(影响本次使用),
3>计算右边式子,并根据运算符优先级,由左向右计算
4>先算第一个括号,假设初始值a=10,则第一个括号内结果就是a的原值a=10
(此时内存中a因为使用a++,使得a的值在使用之后发生改变,a=10+1=11,即此时打印a的话,a=11)
5>再算第二个括号,已知现在a=11,这里调用++a,先加一后使用,即括号内结果是a=11+1=12
(此时内存中a因为使用++a,a的值再加1,a=12,再使用,即此时打印a的话,a=12)
6>赋值给左边:(假设a=10)
b=(a++)+(++a)=10+12=22
以上是我个人的理解,哪里不对还望指正。
|