int i = 10;
i = i++;
System.out.print(i);
显示结果是i==10,
解释是i先赋值,然后自身再加一,那加一之后的i,在哪,可以打印出来吗?
int i = 10;
i = i++;
System.out.print(i);
显示结果是i==10,
解释是i先赋值,然后自身再加一,那加一之后的i,在哪,可以打印出来吗?
let a = 10;
console.log(a++);
console.log(a);
console.log(a);
>>> 10
>>> 11
>>> 11
这是 javascript
的解读,应该一致。a++ -> a = a + 1;
第一条输出是输出 a
自加前的值,即 console.log(a)
,但是这是一个表达式,输出 a
后运算也结束,指
向的值就变了,于是第二第三条输出 console.log(a)
则是运算后的值。
不知道我这样解释对不对,= ̄ω ̄=
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
i = i++
可以展开成:看一下反汇编代码就更清楚了:
解释如下: