作者ccpz (OoOoOo)
看板TransCSI
標題Re: [問題] 補南部補習班二技模擬考..問題
時間Sat Apr 8 21:50:21 2006
※ 引述《j121780im (Wen)》之銘言:
: 我算出來答案是3 .
: 3.若int a=2,b=3 ; 則printf("%d%d%d%d",a++ , --b ; --a ; b++);的輸出結果為?
: 1.2332
: 2.2323
: 3.3333
: 4.1313
: 5.以上皆非
: 我算出來是4.
這題覺得和 cmopiler 有關
因為參數傳遞是先 push 進 stack,函數中再一個個取出
而 stack 最後進的最先出
所以在函數中,要和你打的順序一樣的取出順序
就要從最後一個開始 push
這樣第一次 pop 時才是第一個
所以 b++ 先算,再來 --a ...
而最後結果是 4 沒錯
(這是我用 gcc 跑的結果)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.92.3
1F:→ j121780im:,跟; 有差嗎?...XD 04/08 21:56
2F:→ ccpz:應該是打錯吧, 用 ; 沒辦法編譯 XD 04/08 22:12
3F:推 ileadu:我也是直接貼原po 打的才發現他打錯.. 因為編譯時發生錯誤 04/08 23:23
4F:→ j121780im:是考券打錯..呵。辛苦你們了 04/09 08:46