[問題] sum=sum+ ++i; 和 sum=sum+++i; 的差別

看板C_and_CPP (C/C++)作者 (慶)時間15年前 (2010/11/03 22:52), 編輯推噓2(2012)
留言14則, 12人參與, 最新討論串1/1
問題: int sum=10, i=2, sumN; sum=sum+ ++i; / sum=sum+++i; printf("%d", sum); / printf("%d", sum); 執行結果: 13 / 13------->但 / sum+++i用一個新變數(sumN)存時 ==> sumN=sum+++i; printf("%d", sumN); "12" 我是用DevC++編譯的 想問為什麼換個變數存 結果會不同? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.247.3

11/03 22:53, , 1F
我只能說不要為了任何理由把程式寫成這樣.....
11/03 22:53, 1F

11/03 22:56, , 2F
sumN = sum +++ i 是 sumN = (sum++) + i, 所以是 12, 請
11/03 22:56, 2F

11/03 22:57, , 3F
找本書詳閱運算優先規則; 至於前面那個請閱讀置底第八戒
11/03 22:57, 3F

11/03 22:57, , 4F
總覺得新手學習的方向怪怪的,喜歡挑戰編譯器
11/03 22:57, 4F

11/03 22:58, , 5F
這不是給人看的程式
11/03 22:58, 5F

11/03 22:59, , 6F
有好奇心是好事, 如果他們沒問而自以為理解反而更糟
11/03 22:59, 6F

11/03 23:02, , 7F
挑戰編譯器...不 是測試編譯器.
11/03 23:02, 7F

11/03 23:05, , 8F
未定義行為,置底文。空白沒有影響,書上應該會解釋這部份
11/03 23:05, 8F

11/03 23:10, , 9F
感謝各位....謝謝
11/03 23:10, 9F

11/04 00:32, , 10F
新手很喜歡征服這種題型~
11/04 00:32, 10F

11/04 09:41, , 11F
板上這個問題最近看到好幾次...
11/04 09:41, 11F

11/04 12:56, , 12F
不確定就用括號就好了嘛... 這個問題真的是萬年op耶
11/04 12:56, 12F

11/05 13:36, , 13F
這不是括號就能解決的…請詳讀第八戒
11/05 13:36, 13F

11/05 14:41, , 14F
編輯器是人寫的...
11/05 14:41, 14F
文章代碼(AID): #1CqNSdAk (C_and_CPP)
文章代碼(AID): #1CqNSdAk (C_and_CPP)