i = i++
来源:互联网 发布:关于51单片机与esp8266 编辑:程序博客网 时间:2024/05/16 11:41
public class Demo02 {
public static void main(String[] args) {
int i = 0;
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println(i);
}
结果是0;很神奇吧,其实可以这样理解
i++的结果还是i。只有在下次用到i的时候i的值才有变化。
i=0,i++的时候返回结果是0,但是i的值变成了1,但是这个时候又将i赋值为i++,所以i的值还是没有变化。
你可以调试的时候看一下i的值,将i=i++;改成两句
tmp=i++;
i=tmp;
- public static void main(java.lang.String[]);
- Code:
- 0: iconst_0 //0放到栈顶
- 1: istore_1 //把栈顶的值保存到局部变量1,也就是i中
- 2: iload_1 //把i的值放到栈顶,也就是说此时栈顶的值是0
- 3: iinc 1, 1 //注意这个指令,把局部变量1,也就是i,增加1,这个指令不会导致栈的变化,也就是说局部变量1,即i此时为1了。
- 6: istore_1 //把栈顶的值(0)保存到局部变量1,也就是让i为0了,所以最后i为0
- 7: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
- 10: iload_1
- 11: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
- 14: return
这样你就能看到其中的变化了
0 0
- 大话 i++、++i和i=++i、i=i++
- k=(++i)+(++i)+(++i)
- i = i++;i=++i
- i=i++; i=++i
- ++i *=i与 i++*= i
- 关于i++;++i;以及i=i++
- i++ ,++i,i=i++的问题
- i++ ,++i,i=i++的问题
- i++,++i,i=i+1 分析
- i = i++;
- a[i] = i++;
- I=I++
- i = i++;????
- 解释:i=i++
- i = &i
- i++ ++i区别 +=
- java i=i++
- i=i++分析
- G.Hinton Dark Knowledge
- android UI中常用的几个概念:dp,dip,dpi,sp,px,pt,ppi及它们之间的关联
- 深入理解Java的接口和抽象类
- QT类继承关系图
- CF#333(Div2) C. The Two Routes(最短路)
- i = i++
- Bootstrap入门基础(三)
- javascript的window.ActiveXObject对象,区别浏览器的方法
- 第七章.复用类 初始化和类的加载 总结
- 拍照上传、相册获取逻辑实现
- POJ 1679 The Unique MST 次小生成树
- 【Poj】-2253-Frogger(最短路,变化)
- 332. Reconstruct Itinerary(重要)
- 【HDU 2063 过山车】