[問題] 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