[問題]遞增運算子的考題
i = 10;
i = i++ + ++i;
i是多少
答案是 22
假設是三個變數就算了 c = a++ + ++b; 還可以理解。這是同個變數
最後會看起來是 10 + 11 = 21, 21再做後增的動作。
盲點是 ++i -> i = 11;
i++ -> 此時的 i 不應該是 11嗎??
應該要出來 11 + 11 = 22,最後才做 22 後增動作 為 23 才對吧..?
------------------------------------------------------------------------------
剛參考了版友說 undefined behavior
其實我完全混亂了
1. linux gcc 可以過,表示它已定義的意思嗎? 我要怎樣才可以知道這是未定義的
2. x = x++; 在置底第八戒也說他是 undefined 的,這個很下意識的就是++最後做
賦值先做,最後才++,還是如果是 y = x++; 就不會有這困擾了?
------------------------------------------------------------------------------
請問 x = x++; 為何是未定義行為,而 *p++ 這種就不屬於是未定義行為????
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.215.61
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1535162145.A.799.html
→
08/25 10:05,
7年前
, 1F
08/25 10:05, 1F
推
08/25 10:12,
7年前
, 2F
08/25 10:12, 2F
→
08/25 10:14,
7年前
, 3F
08/25 10:14, 3F
→
08/25 10:14,
7年前
, 4F
08/25 10:14, 4F

※ 編輯: blueblueChen (219.68.215.61), 08/25/2018 10:41:41
推
08/25 10:41,
7年前
, 5F
08/25 10:41, 5F
→
08/25 11:43,
7年前
, 6F
08/25 11:43, 6F
→
08/25 11:44,
7年前
, 7F
08/25 11:44, 7F
推
08/25 12:52,
7年前
, 8F
08/25 12:52, 8F
→
08/25 13:27,
7年前
, 9F
08/25 13:27, 9F
→
08/25 13:30,
7年前
, 10F
08/25 13:30, 10F
→
08/25 13:31,
7年前
, 11F
08/25 13:31, 11F
→
08/25 13:32,
7年前
, 12F
08/25 13:32, 12F
→
08/25 13:32,
7年前
, 13F
08/25 13:32, 13F
→
08/25 13:43,
7年前
, 14F
08/25 13:43, 14F
※ 編輯: blueblueChen (219.68.215.61), 08/25/2018 17:47:51
→
08/25 18:47,
7年前
, 15F
08/25 18:47, 15F
推
08/25 19:02,
7年前
, 16F
08/25 19:02, 16F
→
08/25 22:14,
7年前
, 17F
08/25 22:14, 17F
→
08/25 22:20,
7年前
, 18F
08/25 22:20, 18F
→
08/25 22:20,
7年前
, 19F
08/25 22:20, 19F
→
08/25 22:21,
7年前
, 20F
08/25 22:21, 20F
→
08/25 22:22,
7年前
, 21F
08/25 22:22, 21F
→
08/25 22:22,
7年前
, 22F
08/25 22:22, 22F
推
08/25 22:33,
7年前
, 23F
08/25 22:33, 23F
→
08/25 22:34,
7年前
, 24F
08/25 22:34, 24F
→
08/25 22:35,
7年前
, 25F
08/25 22:35, 25F
→
08/25 23:26,
7年前
, 26F
08/25 23:26, 26F
→
08/25 23:27,
7年前
, 27F
08/25 23:27, 27F
→
08/25 23:32,
7年前
, 28F
08/25 23:32, 28F
→
08/26 14:41,
7年前
, 29F
08/26 14:41, 29F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章