黑马程序员技术交流社区
标题:
大神过来
[打印本页]
作者:
beimenshisan
时间:
2015-8-16 22:38
标题:
大神过来
class Demo{
public static void main(String[] args){
int a = 1;
a = a++;
System.out.println(a);
}
}
问:为啥结果不是 2 ?
作者:
iamzk
时间:
2015-8-16 23:04
a++的具体操作过程为:
1.先存储a的原值 temp = a;
2.然后a = a+1
3.最后再将存储的旧值temp赋值给a,a = temp
作者:
kenfans
时间:
2015-8-16 23:40
你可以理解为a++有一个返回值,这个值是1,所以
a = a++;的情况的a++,此时a=2,但是这个表达式的值是1,它又将这个值1赋给了a,所以a又变成了1
作者:
fantianfei
时间:
2015-8-17 01:45
先将1赋值给a,然后再自增,所以答案是1
作者:
kevin986745zk
时间:
2015-8-17 07:23
这是一个基础问题了
作者:
sven556677
时间:
2015-8-17 07:50
先++就可以了呗
作者:
帅帅loyal
时间:
2015-8-17 14:27
这就不用叫大神过来了,,,
作者:
zhao1991
时间:
2015-8-17 16:46
很基础的问题了,视频看了吗
作者:
liuch111
时间:
2015-8-17 16:50
太难了 座等大神吧
作者:
lknum1
时间:
2015-8-17 17:17
拿分来了
作者:
pengbeilin
时间:
2015-8-17 17:42
拿点经验就好了。
作者:
为了理想而奋斗
时间:
2015-8-17 19:11
拿点经验好了
作者:
xp2015
时间:
2015-8-17 21:20
a++ 先运算 后自增1; ++a 先自增1 后运算
作者:
koibiki
时间:
2015-8-17 21:48
因为是想将a值赋予a,再对a做自增
作者:
蓬头小道士
时间:
2015-8-17 22:14
a=a++是先把赋值再自增,记住就好了,没有为什么,这是java的规则。
作者:
visen
时间:
2015-8-17 22:37
++在前是先自增在使用,++在后是先使用在自增,所以a=a++是先赋值,所以a=1
作者:
leiyingyin
时间:
2015-8-17 23:08
栈内存的原理是:先进后出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2