Re: [問題] 關於i++和 ++i有什麼不同

看板C_and_CPP作者 (carl)時間15年前 (2009/04/30 18:20), 編輯推噓5(505)
留言10則, 7人參與, 最新討論串4/5 (看更多)
意思大概是這樣吧 不知道有沒有講錯= =a i++ function { temp = i; i = i + 1; return temp; } ++i function { i = i + 1; return i; } 所以i++並不是在給值完才做+1的動作 i++和++i都是在一開始就做+1的動作 但是i++是要回傳+1之前的值 所以需要一個temp值來存 -- http://carl830.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.134.25

04/30 18:21, , 1F
04/30 18:21, 1F

04/30 18:51, , 2F
問題是,它為什麼要這樣處理?
04/30 18:51, 2F

04/30 18:52, , 3F
這樣i++變成需要多一個tmp,不是比較慢嗎?
04/30 18:52, 3F

04/30 18:52, , 4F
不一定需要多一個tmp,最佳化過速度是一樣的
04/30 18:52, 4F

04/30 18:53, , 5F
也不過慢個0.00000001秒
04/30 18:53, 5F

04/30 18:53, , 6F
假使是採用程式碼重新排序來達成 效果就沒差
04/30 18:53, 6F

04/30 19:07, , 7F
compiler會幫忙處理最佳化吧
04/30 19:07, 7F

04/30 19:17, , 8F
對原生型別(像int)根本沒那麼複雜,而且沒人說+1一定要在什
04/30 19:17, 8F

04/30 19:17, , 9F
麼時候做.. i++,++i在語意上的差別比較重要..
04/30 19:17, 9F

04/30 23:56, , 10F
能++i 時,就盡量不要用i++,能+=就不要寫+ 良好寫code習慣
04/30 23:56, 10F
文章代碼(AID): #19-NkB11 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19-NkB11 (C_and_CPP)