看板 TransCSI 關於我們 聯絡資訊
※ 引述《ccpz (OoOoOo)》之銘言: : ※ 引述《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 跑的結果) --a 跟 b++ 會cover掉 a++ 跟 --b 嗎? 所以真正執行到是 --a 跟 b++ ??? 是這樣嗎..謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.148.239