您好、欢迎来到现金彩票网!
当前位置:金誉彩票网 > 赋值运算符 >

java 自增运算符和赋值运算符的优先级

发布时间:2019-08-01 21:50 来源:未知 编辑:admin

  但是底层逻辑是为何?明明++优先级大于=,那么按照优先级,应先进行 b++这个运算,然后把结果整体赋值给 b。

  本例中,第一个括号中,x先参与运算取值5,再自加,此时x=6, 第二个括号中x先自加,此时x=7; 再按7参与运算;第三个括号为7*10,所以最终结果就是5+7+70=82,望采纳。

  展开全部先把b的原来的值取一个副本, 然后++,然后赋值,赋值使用原来的值。

  底层实现可以自己查看字节码更多追问追答追问请问能否有一套通用的逻辑,解释 a=b++和 a=++b?且不与运算符优先级矛盾···追答你是不是钻了牛角尖了。

  底层也有方式同时保证这两点。上面两点也不冲突。没有一点是不对,或者模糊的。

  如果非要钻一下牛角尖, 你可以这么理解 【a = 表达式exp】, 什么意思呢, 表达式都是有值的, 表达式的值赋值给其他变量。 比如 a = 3 + 4, 3+4这个表达式的值是7. 7赋值给a。这个基本的概念应该懂吧, c语言里连赋值表达式都是有值的,但是java里面不允许a=b=c的情况。

  那么 ++b 和 b++ 是两个不同的表达式, 第一个表达式计算的值是b本身, 第二个是b+1. 这两个值就是这两个表达式的值。 可以赋值给a。 那么另外的b所对应的内存的值发生的变化,叫做“副作用(side effect)”,这跟上面说的表达式的值,是没有关系的。是这个表达式计算过程中的其他影响。

  b++单独作为一个语句,不赋值的时候 b++; 你觉得 此时的表达式值是什么呢,是b原来的值,而不是增一后的值。

http://billboardy.net/fuzhiyunsuanfu/982.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有