A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明羽果果 中级黑马   /  2015-2-9 10:05  /  971 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 明羽果果 于 2015-3-4 19:01 编辑

虽然运算符优先级不是重点知识,编程也不建议写很复杂的代码,但是这个还是想知道为什么:time:

QQ图片20150209100313.png (2.77 KB, 下载次数: 71)

QQ图片20150209100313.png

6 个回复

倒序浏览
先乘除  后加减   int b = a+3*a++  是这样一个过程 2 +  3乘以2 然后 a =a++; 所以结果是8

int c = (a++)+3*a  你上面对a进行了自增 所以 a此时是3  而且你有在c的运算中对a进行了自增
所以 int c = 3+ 3*4  所以结果是15
回复 使用道具 举报
:D谢谢,造了
回复 使用道具 举报
和c++的一样把!~
回复 使用道具 举报
基本的加减乘除是固定的,a++是先参与运算再进行自增,而++a是先自增再参与运算。所以b=a+3*a++就可以变成b=2+3*2=8(此时,a已经变成a++=3)。 c = (a++)+3*a=3+3*a(注意这里因为a已经进行过自增,所以这里的a值已经发生变化是4),所以上式应该是 c = (a++)+3*a=3+3*a=3+3*4=15。

这类题弄清x++和++x的区别应该就没问题了
回复 使用道具 举报
针对你这个代码,就是按照正常顺序算啊,你的代码根本就没涉及到复杂的运算顺序
回复 使用道具 举报
还好吧   挺简单的  这个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马