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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

关于int a =1,a=a++ ,打印a的结果的问题,能解释下吗

44 个回复

倒序浏览
这是个强大的问题,正在思考中~~
回复 使用道具 举报
执行a=a++的时候,计算机底层是这样a=a(a当时等于1);a=a+1,计算机底层是从右往左开始计算的,a=a+1后的a=2,然后运算左边的a=1,所有打印出来的是1
回复 使用道具 举报


a先做的赋值,相当于a给了a,而i初始化的时候是1,所以没什么意义.
如果你++a结果就会不一样.++a会先做自增,再去赋值.
回复 使用道具 举报
这里要明白a++和++a的用法。a++和++a如果不参与运算单独使用,效果一样,都是自身加一。
回复 使用道具 举报

RE: 关于int a =1,a=a++ ,打印a的结果的问题,能解释下吗

北极瞭望塔 发表于 2015-11-13 00:21
这里要明白a++和++a的用法。a++和++a如果不参与运算单独使用,效果一样,都是自身加一。 ...

2:参与运算时,a++先运算(a先参加运算)然后自身加一,而++a (a先自身加一)先自身加一,在参与运算
回复 使用道具 举报
先赋值,再自增
回复 使用道具 举报
打印结果是啥?
回复 使用道具 举报
看了最新的帖子,触感而发,其实a=a++可以拆分为 tmp=a ; a=a+1 ; a = tmp 其实就是什么都没发生过!!! 所以a还是原来的1
回复 使用道具 举报 1 0
yubail 中级黑马 2015-11-13 19:34:11
10#
楼上正解
回复 使用道具 举报
定义了一个int类型的变量a,然后a自增一次(也就是加1),此时a的值变成了2,然后将=号右边的2赋值给了=号左边的a,所以打印a的结果是2
回复 使用道具 举报
年輕 中级黑马 2015-11-13 21:24:54
12#
a++先运算 再自增
回复 使用道具 举报
看到大家的回帖我也是醉了
回复 使用道具 举报
你的题意结果a=1,已经验证,但是,如果你是b=a++的话,结果就不一样了,结果b=1,a=2其中的关键你要思考,不太好讲,只能说是还没有赋值
回复 使用道具 举报
怀瑾 中级黑马 2015-11-13 21:43:40
15#
candlelight 发表于 2015-11-12 23:34
执行a=a++的时候,计算机底层是这样a=a(a当时等于1);a=a+1,计算机底层是从右往左开始计算的,a=a+1后的a=2, ...

老师是这么讲的
回复 使用道具 举报
怀瑾 中级黑马 2015-11-13 21:44:51
16#
沈会来 发表于 2015-11-13 21:29
你的题意结果a=1,已经验证,但是,如果你是b=a++的话,结果就不一样了,结果b=1,a=2其中的关键你要思考, ...

现在知道了,这个确实不好说清楚
回复 使用道具 举报
海贼 中级黑马 2015-11-13 21:49:00
17#
输出1。  a=a++;可以理解成a=1,a=a+1, 因为底层代码是从右往左执行的,所以输出1.
回复 使用道具 举报
怀瑾 中级黑马 2015-11-13 21:49:36
18#
keaitao0321 发表于 2015-11-13 20:36
定义了一个int类型的变量a,然后a自增一次(也就是加1),此时a的值变成了2,然后将=号右边的2赋值给了=号 ...

不是这样的,打印的结果是1
回复 使用道具 举报
怀瑾 中级黑马 2015-11-13 21:57:39
19#

结果是1,下面有正解
回复 使用道具 举报
怀瑾 中级黑马 2015-11-13 22:02:04
20#
一个人走天下 发表于 2015-11-12 23:46
a先做的赋值,相当于a给了a,而i初始化的时候是1,所以没什么意义.
如果你++a结果就会不一样.++a会先做自增, ...

我觉得有三种解释都是有道理
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马