黑马程序员技术交流社区
标题:
a++和++a的问题
[打印本页]
作者:
京鱼龙
时间:
2012-7-5 23:10
标题:
a++和++a的问题
本帖最后由 罗京雨 于 2012-7-6 08:32 编辑
那位大侠给说下,我知道a++是先赋值在运算,++a是先运算后赋值。
有一道题是 int a = 3,b;
b = (a++)+(++a)*2+(a++)+(++a);
我算出来的结果b = 18,但答案却是b = 25。
是不是第一个(a++)和第三个(a++)的值不一样,第二个和第四个(++a)的值不一样。
但是哪里不一样我就不知道了,是两个a的值不一样还是前面的(a++)和后面的(a++)整体的出来的值不一样。
请大侠帮我解答下,a++和++a快把我累死了。
作者:
张凯
时间:
2012-7-5 23:40
是这么算出来的,第一个a++,这时a=,3,到++a时,这时,a经过前一次运算后变成4,++a后变成5,后面的原理跟前面一样,即b=3+5x2+5+7=25,希望能帮到你。
作者:
艾衍年
时间:
2012-7-6 00:27
a++先用后自加,++a先自加再用。如果只有a++和++a,没有别的运算时,这两个效果一样。
你这里,先a++,这时a=3,到第二步++a时a=5,因为a经过前一步自加后a=4,第三步再a++,这时a=5,第四步++a时,a=7。
所以是 3+5*2+5+7=25。希望有所帮助。
作者:
吴立杰
时间:
2012-7-6 22:23
按照从左到右的顺序计算就ok了,a++,就是先赋值a,然后a在做++动作,++a嗯,就是先++动作,在赋值a。{:soso_e102:}大白话……
作者:
李洋-
时间:
2013-12-10 22:45
如果++在前边就是先+1在操作,反之在++在后边就是先操作在+1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2