[问题] C语言简单习题求解

楼主: PanYX (Panpeter)   2016-05-21 23:22:09
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
问题(Question):
a++ 的意义是先执行整个叙述后再将a的值加一 (
作者: longlongint (华哥尔)   2016-05-21 23:26:00
a++再看一次
楼主: PanYX (Panpeter)   2016-05-21 23:34:00
是把a--换成a++吗? 刚刚试一下还是9
作者: TWkobe (中华柯比)   2016-05-21 23:35:00
你再打一个printf("a=%d\n", a);后缀--的副作用要到下一行你才看得到
作者: bibo9901 (function(){})()   2016-05-21 23:36:00
我怎么觉得你"定义"写反了?
作者: bben900911 (Ben)   2016-05-21 23:46:00
做完再做+-,那当然+-后的结果该行看不到阿?你尝试在7~8 8~95之间直接检查a。再研究看看8~9*
楼主: PanYX (Panpeter)   2016-05-21 23:48:00
t大是写在哪一行呢? 谢b大 改正了b大我试试
作者: TWkobe (中华柯比)   2016-05-21 23:49:00
你在printf("a=%d\n", a--);后面加上去就知道为什么了
楼主: PanYX (Panpeter)   2016-05-21 23:57:00
感恩各位解答 所以答案是a=9 a=8 这样吗?
作者: TWkobe (中华柯比)   2016-05-22 00:01:00
你在第七行的时候印出9此时的a也是9 第八行时先印出9印完9后副作用此时a才变成8 所以你在印一次a就会是8
楼主: PanYX (Panpeter)   2016-05-22 00:03:00
呜呜 这个题目怎么有点在弄新手阿 哈哈 还是我太浅
作者: noodleT (面T)   2016-05-22 00:31:00
operator 可以看作一个带有返回值的函式,8,9两行都会先执行 ++,只差在返回值不同a++ 是先执行 a++ 喔,不是先做 printf ,只是 a++ 返回的是旧值而已http://jhcpp.blogspot.tw/2016/05/cc.html?m=1
作者: art1 (人,原来不是人)   2016-05-22 02:25:00
回传值
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-05-22 12:09:00
一点都没有弄到好吗 现在人怎么那么容易被弄没事就假设全世界人都要弄他 超棒DER都知道自己是新手 跟自己想的不一样就要学起来懂吗想不通就觉得别人[弄]你 那不要学阿 就不会被[弄]了啊
作者: Caesar08 (Caesar)   2016-05-22 12:28:00
实际上就是你太浅而已...
楼主: PanYX (Panpeter)   2016-05-22 13:18:00
moon大 开个小玩笑 别太认真 我也后面说我太浅啦
作者: bibo9901 (function(){})()   2016-05-22 14:16:00
不知道当初设计 ++/-- 是不是为了对应asm的 INC/DEC ?
楼主: PanYX (Panpeter)   2016-05-22 14:17:00
我会吸取教训 改进自己的!!
作者: bibo9901 (function(){})()   2016-05-22 14:17:00
以今日的角度看是满搞人的没错至于那种跪在神像前批评别人不跪的 别理他没关系
作者: Schottky (顺风相送)   2016-05-22 14:43:00
@bibo9901 可以说是对应,但 INC 可没有先加后加的问题
楼主: PanYX (Panpeter)   2016-05-22 14:47:00
b大 谢谢 了解了

Links booklink

Contact Us: admin [ a t ] ucptt.com