A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

吖歪

中级黑马

  • 黑马币:-29

  • 帖子:67

  • 精华:0

class Test1{        public static void main(String [] args){
                int a=1;
                a=a++;
                System.out.println(a);        
        }
}

打印结果为1;

求各位大神解析。谢谢。

5 个回复

倒序浏览
http://blog.csdn.net/miderph84/article/details/3390166
回复 使用道具 举报
++放在a后面,先把a 赋值给a,再自增,输出结果还是a
回复 使用道具 举报
a++是先赋值
回复 使用道具 举报
这个跟JAVA语言的底层存储结构以及JVM的运算方式有关
int a = 1;
a = a++;     /*在这里可以把这个式子看成  a= a        ++;即a = a 以及 a = a + 1,原因是因为a++是先赋值再自增,然后JVM在运算过程中是从右到左进行的,所以算到a = a + 1时a是=2的,但是左边还有一个式子  a=1,即这个式子又把a=2覆盖了,所以最终输出的是a = 1
回复 使用道具 举报
a++就是先将a=1赋值给a存储起来,然后a在执行a=a+1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马