int k=5 k=(k++)+1;结果k为什么是6

本人编程,学到自增不理解为何k会是6

img


我的思路是 后置++原来的k参与运算就是k=5+1,然后再进行自增k就是7

括号优先级最高

k++的时候,虽然k会增加,但之后会被+1替换掉,所以就是k=5+1。

k++ 确实是加了1 ,使用k 时并没有使用最新的值(6),而是使用了旧值(5)

如果改成 k = (++k) + 1 就是 7

1、不要被括号迷惑了,其实k = k++ + 1;
2、k = k++ 的结果还是k,因为是后++,是先算值k=5
3、k=5+1=6

赋值的优先级最低,拆解下来就是:
int k =5;
int kb = k+1;//在内存中生成了新的对象
k++;//后置++
k=kb//最后再赋值

int k=5:
K=(K++)+1
System.out.printin(k)

自增的形式有两种,K++和++K;
K++是先计算后自增;而++K是先自增再计算;
所以是K = (5)+1

看下编译出来的class就一清二楚了。

img