尹桥印 发表于 2013-6-20 16:52
a++本来就是将a自身加1,先把a赋值给等号前面的a,再将本身加1;
如果你写成a = ++a ;
打印结果就是6了,先 ...
shang1jk 发表于 2013-6-20 17:04
" 先把a赋值给等号前面的a,再将本身加1;" --->>这样说的话, a还是要加1的啊,, 怎么输出5.
p.s. 你真 ...
尹桥印 发表于 2013-6-20 17:21
a = a++;
如果写成如下:
int b = 0;
王靖远 发表于 2013-6-20 19:38
同理可以画出 a = ++5;
尹桥印 发表于 2013-6-20 17:21
a = a++;
如果写成如下:
int b = 0;
hx32 发表于 2013-6-20 20:05
看了图解,我了解了累加的实现,然后我就想,再输出一次a值是否可以实现a=6,但是仍然是5.怎样可以输出a= ...
尹桥印 发表于 2013-6-20 17:21
a = a++;
如果写成如下:
int b = 0;
王靖远 发表于 2013-6-20 20:13
因为a = a++;是左边自增运算完再赋值的,当赋值的时候,右边运算开辟的栈内存都释放了,a还是等于5。 你 ...
hx32 发表于 2013-6-20 20:14
哦,是栈内存释放的原因,明白了,谢谢
sunriselzz 发表于 2013-6-20 21:08
a = a++这个写法没有错误的,++在后,先把a之前初始化的值5赋值给左边的a,先打印输出a的值5,然后再自加+1,也 ...
尹桥印 发表于 2013-6-20 17:17
这题还得细细思考
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |