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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 笑对明天 中级黑马   /  2017-2-15 00:37  /  1055 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=10;
a=a++;
System.out.println(a);
输出结果:10
原因分析:可以看成:int a=10;
int b=a++;//该句运行完成后b=10,a=11;
a=b;
注释:a=a++相当于a被赋值了三次,第一次是b=a赋值,第二次是a++(即a=a+1);第三次是a=b(将原本的11覆盖了)

点评

666666666666666  发表于 2017-2-15 18:38

8 个回复

倒序浏览
回复 使用道具 举报
写个空项目观察一下就好了,记得脑袋都大了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
还好这个我能理解,共同努力吧!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
后++直接赋值,输出,但是最终a变成了11
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
桥台 中级黑马 2017-2-15 13:51:50
7#
后a=a++其实在内存中的运算过程是,a++之前先在内存中预存一个a的值然后再++,而到了赋值的时候他就把原来预存在内存中的a赋值给a.
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
11111111111111
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马