黑马程序员技术交流社区
标题:
求大神来解答问题 byte b=1;b=b++;然后输出b是多少?
[打印本页]
作者:
wangyu
时间:
2015-4-21 22:02
标题:
求大神来解答问题 byte b=1;b=b++;然后输出b是多少?
这个问题有人知道吗?能跟我说说思路吗?我什么我运行的结果是1、
作者:
fanxia_2007
时间:
2015-4-21 22:41
这里要区分b=b++和b=++b的区别,前者将b的原始值付给左边的b,然后右边再自增,因此值是1。后者表达式是先自增,然后将自增后的值付给左边,因此是2.此外,如果没有赋值操作,单独的b++和++b是等效的,没有区别,值都是2.
作者:
wangyu
时间:
2015-4-21 22:44
步骤:1、先算出右边表达式的值为1,也就是要赋值给左边的b的值为1,但是这个时候只是将1存在了临时的内存区域
2、b++,b的值变为2
3、再将第一步提取出来的1赋值给b,完成整句代码的复制操作
别理解成自增不执行 只是1赋值覆盖了2而已
作者:
mxdeheima
时间:
2015-4-21 22:58
1
可以画个内存图分析
作者:
mono
时间:
2015-4-22 09:43
肯定是1啊、
作者:
巴银
时间:
2015-4-22 09:50
同样学习了,
作者:
王英明
时间:
2015-4-22 09:53
1,不知道为什么!
作者:
an_lucas
时间:
2015-4-22 10:03
我还以为是2.。。
作者:
wwfangfang
时间:
2015-4-22 10:15
public static void main(String[] args) {
int b = 1;
int c = b++;
System.out.println("b = "+b+" c = "+c);
}
你可以参考一下这个例子:int c = b++;是先进行赋值操作再进行自加操作
可以分解为下面两步就容易明白了:int c = b;b=++b
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2