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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙祚涛 初级黑马   /  2015-8-7 21:08  /  925 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int b = 0;
b = b++;
System.out.println(b);
在这个程序里面,b=b++;这一行,右侧b赋值给左侧,此时b=0,然后b++,此时b=1。但是最后输出b=0.很是疑问这是怎么操作的,希望有知道的能回答,谢谢!

22 个回复

倒序浏览
++ 在后 则先执行左侧 b=b 赋值,
所以b=0,
如果是 b=++b,才会等于1
回复 使用道具 举报
b = b++;++在后先进行运算,然后在自增
回复 使用道具 举报
++当不是存在的时候 , ++在左先自增在进行运算, ++在右先运算在自增
回复 使用道具 举报
b=b++的时候,首先复制一个模版,然后自增,然后将模版的值赋值给b,即为0。
顺便说以下,这种问题知道怎么回事就好了,不要深究,否则会让你越来越迷糊.....影响学习
回复 使用道具 举报
本帖最后由 Clouddd 于 2015-8-7 21:41 编辑

b = b++;是在b要在被使用后才会自增的;即将内存中的常量库中先把0取出给b赋值
而++b,则会先自动加一。
而这种问题呢,你知道b++和++b的区别就好。
回复 使用道具 举报
可以这样理解,你输出的是左边的b
回复 使用道具 举报 2 0
画个内存图就会有答案了
回复 使用道具 举报
一楼的解答很好啊
回复 使用道具 举报
b++是先运算再自增,++b是先自增再运算
回复 使用道具 举报
++在后,先赋值,所以是0,然后再自增。++在前,先自增在赋值,是1
回复 使用道具 举报
b先赋值给自己,然后在自增的.
回复 使用道具 举报
这是自增运算符的特点,++在后就是先赋值,再自增,同样--运算符也是这样的
回复 使用道具 举报
[b]int b = 0;
b = b++;      
//这里++放后面是告诉你  先使用b然后才自+1,也就是先把b最先定义的值0赋值给b,然后才加1,如果是++b,那么这里才是b=1;
System.out.println(b);  




回复 使用道具 举报
b++就是0,++b就是1,这里面有个++在前还是在后的运算,视频中有讲到的,说的简单点就是,先++就是+完的值,后++就是初始的值
回复 使用道具 举报
楼上的大神解答的都挺不错的。。
回复 使用道具 举报
我也学习了!!!!!!!!!!!!
回复 使用道具 举报
呵呵,我也刚学完没几天,其实就是大家说的原则,++b是先自增1再参与运算,,b++是先运算,运算结束后自增1的原则.你说的此时b=0,b++了,参与运算的还是0呢
回复 使用道具 举报
wo竟然无言以对,这是哪里的题目?
回复 使用道具 举报
ch18346846149 发表于 2015-8-7 21:43
可以这样理解,你输出的是左边的b

程序怎么知道那个是输出的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马