作者guanrulee (Cobra)
看板Grad-ProbAsk
標題[理工] C++的問題
時間Fri Jun 26 00:53:04 2009
請問
a = 22
c = ++a + ++a;
答案是多少呢?
我覺得是
c = (22+1) + (23+1)
= 23 + 24
= 47
但是有人說是
c = 24 + 24
意思是說 在加號運算以前 後面的a++就已經運算了嗎?
就會被判定為24然後再相加嗎?
請問現在的c++是怎麼設定的呢?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.208.190
1F:推 bighead319:你自己寫個C程式run一次不就知道了 06/26 00:57
2F:推 SONGya168:標題: 科目-問題所屬章節或類型 ex: 程式語言-C++ 06/26 01:05
3F:推 fish0835:因為++a的優先權為這個敘述之最高! 06/26 01:38
4F:→ fish0835:所以先執行兩次的++a才將兩個a加起來!答案是48~ 06/26 01:38
5F:推 FRAXIS:嚴格來說是不會有答案的.. 因為是未定義行為 06/26 08:22
6F:推 sasbluesea:undefined behavior 06/26 11:48
8F:→ clement80161:這個網址講得不錯 06/26 12:51
話說今年台科電子面試就考這種的...
不知道真的遇到題目的時候 這類型題目該如何計算
※ 編輯: guanrulee 來自: 61.228.208.209 (06/26 14:46)
9F:→ ssccg:面試的話當然是回答未定義行為,順便抱怨這種題目很無聊啊 06/26 20:50
老師有執行c++告訴我答案錯了...
※ 編輯: guanrulee 來自: 220.139.209.134 (06/26 22:29)
10F:→ RULELOSER:執行過 答案是...47 06/27 00:27
11F:→ ssccg:老師執行結果又不重要,換個compiler答案就不一樣了 06/27 02:37
XD 我用上面板友說的C 結果出來答案是48..
※ 編輯: guanrulee 來自: 61.228.203.171 (06/27 13:58)
12F:推 MysterySW:C++板十誡之九 06/27 22:10