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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马强 中级黑马   /  2012-4-4 19:23  /  2602 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x =0 ;
x = x++;
sop(x);
输出的是0.  想问的是在内存中 x++怎么操作的,具体加到了那里?

10 个回复

倒序浏览
如果你想要X自增的话,直接X++就好了,再把它赋值的话,表达式会把x=0先赋给x,然后再自增,
但是自增后你没有把它保存,相当于废话!
如果是int y = x++;内存中的运算是把x得值赋给变量y,然后x自增运算!
回复 使用道具 举报
x++ 和++x是不同的,比如:
int y=1;
int x=y++;
这样打印x=1,y=2;x=y++是先把y赋值给x以后再自加
int y=1
int z=++y
这样打印的是,y = 2; z=2;++y是把y自加以后再赋值给z,
y++和++y是不同的
回复 使用道具 举报
内存开个控件保存x=0, 然后执行X的自增等于1,但是你没定义变量保存,所以你打印出来的X还是0, 至于加到哪里可能就自增了一次吧。
回复 使用道具 举报
邱俊杰 发表于 2012-4-4 19:42
内存开个控件保存x=0, 然后执行X的自增等于1,但是你没定义变量保存,所以你打印出来的X还是0, 至于加到哪 ...

把控件  改成  空间
回复 使用道具 举报
X++  先执行运算符操作,再执行自加
++X  先自加,再执行运算符操作
直接加到这个变量值本身
回复 使用道具 举报
x++是先赋值,在执行x++操作的。具体内存里的运算不用了解的太清楚。
因为像这样的语法实际编程没有人会用的,所以考虑太多只会浪费自己的时间。
回复 使用道具 举报
x++是先把自身的值赋给变量,然后自身再做++运算
回复 使用道具 举报
这里涉及到一类很容易混淆的问题,经常会遇到类似X++ 与++X ,区别就是前者先赋值或输出,再执行自身加1。而后者就是先执行+1然后再赋值或输出。
回复 使用道具 举报
x=x++;的计算是先进行的x=x,当然输出的是0。然后者是x=x+1进行。
回复 使用道具 举报
http://bbs.itheima.com/forum.php?mod=attachment&aid=MTU0M3wxMmFmYjhkMWQxM2VjZDYxOTZhZjBjNTc0MjQyOTdiNXwxNzMyMzMwMTg1&request=yes&_f=.png

自增运算图.png (33.18 KB, 下载次数: 77)

自增运算图.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马