a=1,b=++a+(++a),求b=?,a=?系列题的思考思路一
a=1,b=++a+(++a),求b=?,a=?系列题的思考思路一
1.a=1,b=++a+(++a),求b=?,a=?
误区:看到这样的题或许你会直接拿着数就做,(1)b=2+2=4,a=2或者3;
(2)b=2+3=5,a=2或3;
我的思路是这样的,仅供参考:在C语言里,a=1,意味着把1赋值给了a,进一步说就是把1放进了以a为标志的存储单元,初始化的时候,a里面存储的是1,当我们进行++a操作的时候,就是重新给存储单元改变其值的过程,经过这一步操作,a这个存储单元里的值就变成了2,我们继续++a,a里面的值就变成了3,之后,操作结束,也就意味着,a里最终放的值是3,所以b=3+3=6,a=3.(注意这里的++a,++在前,接下来,我们再来看++在后的区别)
2.a=1,b=++a+(a++),求b?,a=?
思路同1,重点是怎么处理++在后,同样的,在我们++a后,a里的值成了2,进行a++操作的时候,因为我们知道++在后,先干别人干的事,再去自身加1,在这里的话,就是先干b的事,自身再加1,所以进行a++操作计算b的值的时候,a没有发生变化,依然是2,所以b=2+2=4,而计算a的值,因为干完b的事了,所以a=1+1+1=3,其实,通过两个例子,我们就知道了,计算这样的题,可以从空间(存储单元)去思考,计算b的值需要考虑++在后,而计算a的值,与b,没有任何关系,直接计算即可
最后感谢小冲哥的指导
误区:看到这样的题或许你会直接拿着数就做,(1)b=2+2=4,a=2或者3;
(2)b=2+3=5,a=2或3;
我的思路是这样的,仅供参考:在C语言里,a=1,意味着把1赋值给了a,进一步说就是把1放进了以a为标志的存储单元,初始化的时候,a里面存储的是1,当我们进行++a操作的时候,就是重新给存储单元改变其值的过程,经过这一步操作,a这个存储单元里的值就变成了2,我们继续++a,a里面的值就变成了3,之后,操作结束,也就意味着,a里最终放的值是3,所以b=3+3=6,a=3.(注意这里的++a,++在前,接下来,我们再来看++在后的区别)
2.a=1,b=++a+(a++),求b?,a=?
思路同1,重点是怎么处理++在后,同样的,在我们++a后,a里的值成了2,进行a++操作的时候,因为我们知道++在后,先干别人干的事,再去自身加1,在这里的话,就是先干b的事,自身再加1,所以进行a++操作计算b的值的时候,a没有发生变化,依然是2,所以b=2+2=4,而计算a的值,因为干完b的事了,所以a=1+1+1=3,其实,通过两个例子,我们就知道了,计算这样的题,可以从空间(存储单元)去思考,计算b的值需要考虑++在后,而计算a的值,与b,没有任何关系,直接计算即可
最后感谢小冲哥的指导
您在这个论坛的权限:
您不能在这个论坛回复主题
周日 十月 14, 2012 3:37 pm 由 15178959183
» 新人报道~我不是吐槽贴。。。
周三 五月 16, 2012 5:38 pm 由 萝卜爱喝水
» 课后作业1:编一个程序
周三 五月 09, 2012 11:24 pm 由 廖承启
» C语言初级课堂2--"Hello world"
周六 五月 05, 2012 12:52 am 由 醉之殇
» 新人来报道了。。。。。。
周四 五月 03, 2012 8:50 pm 由 sunquanwen
» 新人报到,字怎样就大了
周三 四月 25, 2012 7:50 am 由 wanghong
» 果断的。来报道啦。。。嘿嘿,我是新手哦
周六 四月 21, 2012 2:41 pm 由 ゛﹏小冲哥ゞ ✿『人事精英』✿李帅
» 指针数组与行指针的异同
周一 四月 09, 2012 3:59 pm 由 *小耳朵*
» 行指针q引用数组元素的方法
周一 四月 09, 2012 3:46 pm 由 *小耳朵*