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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yxtyxj   /  2015-9-29 22:15  /  1604 人查看  /  30 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5   x=x++   先赋值后自增,x++这个表达式仅仅是计算了一个加1,并没有将结果赋予x,所以x值不变是5
回复 使用道具 举报
应该是5。。。。?
回复 使用道具 举报
lvfx 来自手机 中级黑马 2015-9-30 23:59:05
23#
8啊            
回复 使用道具 举报
这样的题目没有意义。这叫做滥用。
回复 使用道具 举报
本帖最后由 云上边牧 于 2015-10-1 01:00 编辑

x = 5,这个全部在栈内存中,没执行完一条x= x++,就弹栈了,main方法中的X值始终是5,所以输出的也是5
回复 使用道具 举报
heshiwei 发表于 2015-9-30 09:55
1.首先这个代码不是在堆内存执行的,而是在栈内存

2.x=x++ 执行完后x不会消失,x的值也发生改变,所以每 ...

但是运行结果为5,如果不是栈内存消失,你怎么解释
回复 使用道具 举报
碧血丹心 发表于 2015-9-30 22:41
结果为5.运行如下图。
原因:首先要明确各个X。
对于x=x++;

李福菊,这个解释应该是正确的~~
回复 使用道具 举报
楼夜雪 发表于 2015-10-1 08:57
但是运行结果为5,如果不是栈内存消失,你怎么解释

运行结果是5,是因为:
先赋值后自增,x++这个表达式仅仅是计算了一个加1,并没有将结果赋予x,所以x值不变是5

前面有人说了。
回复 使用道具 举报
喔,是这样的啊。。。。
回复 使用道具 举报
明明8 好吗
回复 使用道具 举报
一句话,  x++都是废话,没用  所以一直无用功。  5  你给他只是初始赋值,后续没继续赋值
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马