[問題] 關於i=i++
小弟最近在學C++,
可是遇到了一個遞增運算子的問題,一直搞不懂,
比方說:
int i=0;
i=++i;
cout << i <<endl;
可以預期是先跑i=0+1,再令i=1,因此結果為輸出1,實際上也是如此。
但是在下面的情況:
int i=0;
i=i++;
cout << i <<endl;
我覺得應該是i=0,再令i=0+1,因此輸出1吧?
可是實際去run,結果卻是0。
想請問各位大大是為什麼為0呢?
謝謝!
--
標題 [請益] C/P值較高的耳機品牌? 看板 Headphone
───────────────────────────────────────
→
05/19 16:55,
05/19 16:55
推
05/19 17:05,
05/19 17:05
→
05/19 17:40,
05/19 17:40
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.155.18
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460650023.A.3AF.html
推
04/15 00:08, , 1F
04/15 00:08, 1F
推
04/15 00:11, , 2F
04/15 00:11, 2F
→
04/15 00:11, , 3F
04/15 00:11, 3F
→
04/15 00:12, , 4F
04/15 00:12, 4F
→
04/15 00:15, , 5F
04/15 00:15, 5F
→
04/15 00:15, , 6F
04/15 00:15, 6F
→
04/15 00:19, , 7F
04/15 00:19, 7F
→
04/15 00:25, , 8F
04/15 00:25, 8F
→
04/15 00:25, , 9F
04/15 00:25, 9F
→
04/15 00:31, , 10F
04/15 00:31, 10F
→
04/15 00:31, , 11F
04/15 00:31, 11F
→
04/15 00:31, , 12F
04/15 00:31, 12F
→
04/15 00:32, , 13F
04/15 00:32, 13F
→
04/15 00:33, , 14F
04/15 00:33, 14F
→
04/15 00:35, , 15F
04/15 00:35, 15F
推
04/15 01:30, , 16F
04/15 01:30, 16F
→
04/15 01:39, , 17F
04/15 01:39, 17F
→
04/15 01:59, , 18F
04/15 01:59, 18F
我還是先澄清一下好了,原題目是給一段code要我們debug+寫出debug後的output,
不過參考答案(好像是TA寫的)沒有提到這題有undefined behavior,
所以如果老師說這題我們應該要把這段錯誤改掉的話,我也就認了啦。
(雖然我之前沒聽過undefined behavior)
※ 編輯: alkali5566 (36.239.155.18), 04/15/2016 02:24:51
→
04/15 02:30, , 19F
04/15 02:30, 19F
推
04/15 02:35, , 20F
04/15 02:35, 20F
推
04/15 02:46, , 21F
04/15 02:46, 21F
推
04/15 03:23, , 22F
04/15 03:23, 22F
→
04/15 03:42, , 23F
04/15 03:42, 23F
→
04/15 03:43, , 24F
04/15 03:43, 24F
推
04/15 07:01, , 25F
04/15 07:01, 25F
推
04/15 07:18, , 26F
04/15 07:18, 26F
推
04/15 11:14, , 27F
04/15 11:14, 27F
→
04/15 11:14, , 28F
04/15 11:14, 28F
→
04/15 11:16, , 29F
04/15 11:16, 29F
→
04/15 11:53, , 30F
04/15 11:53, 30F
→
04/15 11:55, , 31F
04/15 11:55, 31F
→
04/15 11:56, , 32F
04/15 11:56, 32F
→
04/15 11:57, , 33F
04/15 11:57, 33F
→
04/15 16:05, , 34F
04/15 16:05, 34F
→
04/15 16:06, , 35F
04/15 16:06, 35F
→
04/15 16:11, , 36F
04/15 16:11, 36F
→
04/15 16:11, , 37F
04/15 16:11, 37F
→
04/15 16:17, , 38F
04/15 16:17, 38F
→
04/15 16:24, , 39F
04/15 16:24, 39F
→
04/16 09:12, , 40F
04/16 09:12, 40F
→
04/16 09:12, , 41F
04/16 09:12, 41F
→
04/16 09:44, , 42F
04/16 09:44, 42F
→
04/16 11:04, , 43F
04/16 11:04, 43F
→
04/16 11:05, , 44F
04/16 11:05, 44F
→
04/16 11:06, , 45F
04/16 11:06, 45F
推
04/18 22:07, , 46F
04/18 22:07, 46F