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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Buer 中级黑马   /  2016-7-13 21:02  /  2604 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=3;
a=a++;
这个语句后,a的值为什么不变,还是3呢

18 个回复

倒序浏览
因为先将a赋值给左边的a,输出地的左边的a,但是内存空间里a自加了一次
回复 使用道具 举报
a=a++,先赋值给了a,(a=3) 再自增,但是a已经被赋值为3了 所以....
回复 使用道具 举报
Buer 来自手机 中级黑马 2016-7-13 22:39:43
板凳
syinys7 发表于 2016-7-13 22:18
a=a  ,先赋值给了a,(a=3) 再自增,但是a已经被赋值为3了 所以....

a是变量,还可以继续++的呀
回复 使用道具 举报
记住就完了,其实也没什么特别确切的道理,放在C语言环境下运行结果就是4.
回复 使用道具 举报
我想出这句的时候以为会报错呢
回复 使用道具 举报
JAVA中
int a=3;
a=a++;
首先是a++,将3传递给a=,然后a=4,
再将a赋值3,最后在内存中的a是3!
回复 使用道具 举报
xfbyxq 中级黑马 2016-7-13 23:03:42
8#
顶替顶替顶替顶替
回复 使用道具 举报
因为先将a赋值给左边的a,输出地的左边的a,但是内存空间里a自加了一次
回复 使用道具 举报
对啊,按从左到右的顺序,是先赋值啊,再加一
回复 使用道具 举报
先赋值是这样的啊。。用++a不就好了。。
回复 使用道具 举报
Buer 来自手机 中级黑马 2016-7-13 23:48:54
12#
后面加一句输出语句,显示a值,是3,内存里的a值是3,亲们
回复 使用道具 举报
Buer 中级黑马 2016-7-15 13:23:09
13#
a++参与运算后,a的值赋予a++了
回复 使用道具 举报
先赋值 后自增
回复 使用道具 举报
先扶植,再就运算++
回复 使用道具 举报
记住如果++在前面变量先自增在赋值,否则先赋值在自增,记住就完事啦
回复 使用道具 举报
a=a++;  这个是因为是++在a的后面,当它参与完赋值之后在自增所以a=3,++a 就是先自增完再赋值。
回复 使用道具 举报
++在左,先自加,再赋值;++在右,先赋值,再自加
回复 使用道具 举报
道理就是, 方法空间和内存空间是两个空间,形成了赋值,自加,再赋值的一个过程~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马