黑马程序员技术交流社区

标题: 表达式求值 [打印本页]

作者: 善良的禽兽    时间: 2015-9-23 21:41
标题: 表达式求值


                麻烦各位大哥给小弟讲解一下下面表达式的运算流程以及y的结果, 感激不尽
                           int x = 4;
                        int y = (x++)+(++x)+(x*10);

作者: yi_jun    时间: 2015-9-23 21:44
沙发,从左到右计算,4+6+6*10=70
作者: 大湿爽    时间: 2015-9-23 21:44
int y=(x++)+(++x)+(x*10);(4)+(6)+(6*10)=70.
作者: 白岛我种树    时间: 2015-9-23 21:52
4+6+60=70 就是这样
作者: syshuangziyu    时间: 2015-9-23 21:54
(x++)  把4 先赋值给x   再自行+1   值为4
(++x)上个值自行+1的结果为5  先自行+1 再赋值  值为 6
(x*10)上个值为6    6*10=60
(x++)+(++x)+(x*10)=4+6+60=70
作者: syshuangziyu    时间: 2015-9-23 21:55
(x++)  把4 先赋值给x   再自行+1   值为4
(++x)上个值自行+1的结果为5  先自行+1 再赋值  值为 6
(x*10)上个值为6    6*10=60
(x++)+(++x)+(x*10)=4+6+60=70
作者: 13480153263    时间: 2015-9-23 21:58
结果是:70

x++是先进行运算,后自增.所以x参与运算的值是4. 在进行x++. 自增后x=5.

++x是先自增,后进行运算.所以参与运算x的值为6.

所以: (x++)+(++x)+(x*10)=4+6+60=70

作者: ksh    时间: 2015-9-23 21:58
-------------------------70
作者: 邬jerry    时间: 2015-9-23 22:02
从左到右计算,4+6+6*10=70
作者: ll5353231    时间: 2015-9-23 22:19

(x++)  把4 先赋值给x   再自行+1   值为4
(++x)上个值自行+1的结果为5  先自行+1 再赋值  值为 6
(x*10)上个值为6    6*10=60
(x++)+(++x)+(x*10)=4+6+60=70
作者: lostyou    时间: 2015-9-23 22:23
从左到右计算,4+6+6*10=70  要搞清x++ 和++x 的区别
作者: 孑孓168520    时间: 2015-9-23 22:47
6666666666{:2_38:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2