精華區beta Programming 關於我們 聯絡資訊
Java/C# 對這種行為的結果,也許有明確定義 (我不清楚) 不過 C/C++ 語言,對這種具有 side effect 的 expression 運算結果的確是看各家 compiler 怎麼定 也因此這才會是種被建議要避免的寫法.. 例如這個轉信板上大約一兩年前也有人問過 i++ + --i 的結果之類的... 你提到的基礎普遍認知大概是這項吧? ※ 引述《Contactman.bbs@bbs.badcow.com.tw (小白退散!)》之銘言: > 我不認為這會因為 complier 不同而有不同的計算結果. > 第一時間看到這題目, 我心算的結果也是 27. > x++ 和 ++x 這種差異性應該已經是出到爛的題目, 有點基礎的人都應該具有普遍的認知. > ※ 引述《StubbornLin.bbs@ptt.cc (Victor)》之銘言: > : 剛才有個人問我一個問題 > : int x=12; x=x++ + ++x; cout<<x; > : 答案是多少,我跟他說這個行為未定義 > : 結果會隨著compiler的實作而改變 > : 他說這是 研究所的考題...... > : 研究所...............囧rz||| > : 我想說...從左邊開始是多少 右邊開始應該是多少 > : 應該是25 和 26 吧? > : 不過答案卻是27... 後來我寫了一個程式下去跑 > : 才知道 因為右邊那個++x做完後並不會傳回複本 > : 而是傳回自己本身 所以在遇到左邊x++時會被再加一次 > : 這時就變成 13 14 了 > : http://myweb.fcu.edu.tw/~d9529769/add.cpp > : 這是程式 > : 嗯= = > : 那不是重點....重點是,我很擔心將來某一天如果我遇到這種腦殘題目 > : 該怎麼做答? 那個人說這是問答題 -- , 秘密情人 (bbs.cse.ttu.edu.tw) ~\ Post From: 220-132-114-113.HINET-IP.hinet.net