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 ◆