作者Luckypenguin (Avow)
看板java
标题[问题] 运算子优先权问题
时间Fri Jul 16 11:56:43 2010
各位高手好~
int a=5;b=7,c;
c=a++ + b++;
这样的程式执行顺序应该是
先执行c=a+b 再执行 a++, b++
执行结果c=12 a=6 b=8
可是为什麽在java的运算子优先顺序里
放在变数 "右边"的++ 优先顺序会"高於" +(plus)
因为照这个结果来说++的优先等级应该会比较低才对吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.236.24
※ 编辑: Luckypenguin 来自: 140.115.236.24 (07/16 11:57)
1F:→ pico2k:请去看bytecode... 07/16 12:08
2F:→ xlk:这跟++a顺序高於plus或为什麽吃饭一样没有为什麽 要用心记住喔 07/16 14:56
※ 编辑: Luckypenguin 来自: 140.115.236.24 (07/16 16:29)
3F:→ Luckypenguin:++a会先执行所以优先等级高这个我比较能体会 07/16 16:30
4F:→ Luckypenguin:a++比较晚执行但是为何他优先等级比+高 07/16 17:08
5F:→ hilorrk:++a和a++的差别也许不是在执行的早晚 而是做的动作的差别 07/16 18:22
6F:→ AmosYang:去看bytecode... (google javap) ... 07/16 18:49
7F:→ Luckypenguin:我了解了 感谢大家! 07/16 20:42
8F:→ sbrhsieh:precedence 是指 operator 与 operand 结合的顺序 07/17 18:36