看板 C_and_CPP 關於我們 聯絡資訊
請問 int x=100; x=x++; 最後x是100, 為什麼? 最後x不會+1嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.12.79
james732:我用 vs2008 跑出 101 耶...? 11/18 19:55
makiyolove:應該是先assign值再++ 所以在那行時x=100 下一行就+1? 11/18 19:56
otira:我在下面接了cout 結果跑出來是100 ? 11/18 19:59
c93cj3:右值(x++)的值是100 然後受到side effect影響x會再加1 11/18 19:59
c93cj3:所以x最後是101 11/18 20:00
zerodevil:十誡之九 11/18 20:00
twotwoone:一個運算式寫入x兩次,你有這麼急嗎 11/18 20:36
pttfly:這是考題 我想問觀念 所以如果考出來答案要寫多少? 11/18 20:41
joefaq:這題真的出得很差 不過我猜大概是想問x++的返回值 11/18 20:44
zerodevil:寫undefined behavior. 教授有意見的話拿c standard戰他 11/18 20:58
pttfly:有趣的是我用c編譯會說operation on `x' may be undefined 11/18 21:01
pttfly:用c++編譯就沒warning 結果都是100 我用dev-c++ 4.9.9.2 11/18 21:02
VictorTom:慘了, 萬一有C/C++標準不同的就更讓人頭痛想哭了.... 11/18 21:11
zerodevil:g++要開-Wall或-Wsequence-point才會給warning 11/18 21:12
zerodevil:c和c++之間一直都有一些一格洞會不小心踩到啊XD 11/18 21:13
pttfly:都有-Wall 請問-Wsequence-point是什麼@@? 另外這是考C++ 11/18 21:15
costbook:這部份連很多老師都搞不清楚 11/18 21:27
costbook:(把Java的東西拿來用......) 11/18 21:28
zerodevil:打開sequence point相關的warning. 11/18 21:37
twotwoone:如果是考題,也不過是考你++運算子,這種等級的題目 11/18 21:48
twotwoone:就算被扣分又如何,也不會掉根鳥毛 11/18 21:48
stonehomelaa:有的公司筆試也愛考這種沒水準的題目 11/18 21:57
ledia:有水準沒水準很難說, 要看他覺得的正確答案是啥.... XD 11/18 22:25
ledia:如果他的答案也包括了, not a good style, don't do it 11/18 22:26
ledia:或者是 undefined behavior, 我覺得都不算差 11/18 22:26
legendmtg:.....原po看來還沒看懂....還有結論..... 11/19 00:50
mantour:什麼鬼結論呀… 11/19 09:26
dendrobium:哈哈 11/19 09:27
haraluya:.... 11/19 23:15
world9918:犯了十戒之九 至底看一下 11/21 00:06
※ 編輯: pttfly 來自: 36.228.246.200 (01/03 02:14)