黑马程序员技术交流社区
标题:
运算符优先级
[打印本页]
作者:
明羽果果
时间:
2015-2-9 10:05
标题:
运算符优先级
本帖最后由 明羽果果 于 2015-3-4 19:01 编辑
虽然运算符优先级不是重点知识,编程也不建议写很复杂的代码,但是这个还是想知道为什么:time:
QQ图片20150209100313.png
(2.77 KB, 下载次数: 71)
下载附件
2015-2-9 10:05 上传
作者:
wf111sxwf
时间:
2015-2-9 10:17
先乘除 后加减 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
作者:
明羽果果
时间:
2015-2-9 10:43
:D谢谢,造了
作者:
梁小刀11
时间:
2015-2-10 00:02
和c++的一样把!~
作者:
wenyu
时间:
2015-2-10 11:11
基本的加减乘除是固定的,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的区别应该就没问题了
作者:
franksight
时间:
2015-2-10 11:30
针对你这个代码,就是按照正常顺序算啊,你的代码根本就没涉及到复杂的运算顺序
作者:
yueLife_1993
时间:
2015-2-10 14:15
还好吧 挺简单的 这个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2