第一次的分享,谈谈学习心得, (x++)+(++x)的运算理解
先提个小问题, int x = 4 ;
int x = 4 ,y ;
y = (x++) + (++x) ;
这里面,y的值等于多少?
运算中的 (x++) 和(++x)分别是数字几?
还有另一个问题
int a=2,b=3;
a&b*2^4>>a++
这两个问题就需要我们理解和记住
-
java语言运算符的优先级
-
真正的搞清楚 ++ , --,单独使用和参与运算的使用.
情况1:
单独使用:无论操作符++或者--在数据的前面还是数据的后面,都是对当前数据本身的值进行
自增1或者自减1;
情况2:
参与运算使用:
1)如果++或者--在数据的前面,是先对当前数据值进行自增1或者自减1,然后参与运算
2)如果++或者--在数据的后面,先运算,然后在对该数据值本身进行自增1或者自减1
第一个问题中 y =10
其中 (x++)=4 (++x)=6.
有同学可能就会以为 // y = 5 + 6 = 11 或者是 y = 4 + 5 = 9
开始我也想着,虽然(a++)要参与运算才能自加,这不是带了括号了吗.应该出了括号就自加.
或者是运算结束 两 x 相加后 (x++) 才会自加 .
正确答案是 y = 4 + 6 = 10
形象的理解一下,(x++) 用4 参与了加法运算但是还没有和后面的(++x)相加,这个时候(x++)就已经自加了变成了5,
然后后面还有(++x) 使得x变成了6 所以是 y = 4 + 6 = 10.
同理,第二题的答案是3,可以自己想一想过程.