黑马程序员技术交流社区
标题:
java基础 问题请教
[打印本页]
作者:
孙祚涛
时间:
2015-8-7 21:08
标题:
java基础 问题请教
int b = 0;
b = b++;
System.out.println(b);
在这个程序里面,b=b++;这一行,右侧b赋值给左侧,此时b=0,然后b++,此时b=1。但是最后输出b=0.很是疑问这是怎么操作的,希望有知道的能回答,谢谢!
作者:
大头爱傻瓜
时间:
2015-8-7 21:17
b = b++;++在后先进行运算,然后在自增
作者:
小燕小男_爱情
时间:
2015-8-7 21:20
++当不是存在的时候 , ++在左先自增在进行运算, ++在右先运算在自增
作者:
黑色幽默K
时间:
2015-8-7 21:31
b=b++的时候,首先复制一个模版,然后自增,然后将模版的值赋值给b,即为0。
顺便说以下,这种问题知道怎么回事就好了,不要深究,否则会让你越来越迷糊.....影响学习
作者:
Clouddd
时间:
2015-8-7 21:39
本帖最后由 Clouddd 于 2015-8-7 21:41 编辑
b = b++;是在b要在被使用后才会自增的;即将内存中的常量库中先把0取出给b赋值
而++b,则会先自动加一。
而这种问题呢,你知道b++和++b的区别就好。
作者:
ch18346846149
时间:
2015-8-7 21:43
可以这样理解,你输出的是左边的b
作者:
aa233192133
时间:
2015-8-7 21:54
画个内存图就会有答案了
作者:
何琼飞
时间:
2015-8-7 21:56
一楼的解答很好啊
作者:
黑马小伙儿
时间:
2015-8-7 22:16
b++是先运算再自增,++b是先自增再运算
作者:
酒倌浪人
时间:
2015-8-7 22:28
++在后,先赋值,所以是0,然后再自增。++在前,先自增在赋值,是1
作者:
Morrfree
时间:
2015-8-7 22:30
b先赋值给自己,然后在自增的.
作者:
wzb123baby
时间:
2015-8-7 22:35
这是自增运算符的特点,++在后就是先赋值,再自增,同样--运算符也是这样的
作者:
要踏实小伙子
时间:
2015-8-7 22:39
[b]int b = 0;
b = b++;
//这里++放后面是告诉你 先使用b然后才自+1,也就是先把b最先定义的值0赋值给b,然后才加1,如果是++b,那么这里才是b=1;
System.out.println(b);
作者:
风一样的少年
时间:
2015-8-7 22:48
b++就是0,++b就是1,这里面有个++在前还是在后的运算,视频中有讲到的,说的简单点就是,先++就是+完的值,后++就是初始的值
作者:
JustForYou
时间:
2015-8-7 22:49
楼上的大神解答的都挺不错的。。
作者:
codersun
时间:
2015-8-7 22:54
我也学习了!!!!!!!!!!!!
作者:
small_horse
时间:
2015-8-7 23:07
呵呵,我也刚学完没几天,其实就是大家说的原则,++b是先自增1再参与运算,,b++是先运算,运算结束后自增1的原则.你说的此时b=0,b++了,参与运算的还是0呢
作者:
Marx_D
时间:
2015-8-7 23:20
wo竟然无言以对,这是哪里的题目?
作者:
孙祚涛
时间:
2015-8-24 19:32
ch18346846149 发表于 2015-8-7 21:43
可以这样理解,你输出的是左边的b
程序怎么知道那个是输出的
作者:
画问好送明天
时间:
2015-8-24 20:07
++在后面,是先把值赋给b,然后加一
作者:
再见_悟空
时间:
2015-8-24 20:19
这个问题就是++的一个特殊的地方,就是0,++似乎有一个覆盖了赋值运算=的效果,记住就行了,不必深究
作者:
jeska
时间:
2015-8-24 21:06
额,楼上说的都对,我都没话说了,反正就是++在前还是在后的区别
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2