作者carlcarl (carl)
看板C_and_CPP
標題Re: [問題] 關於i++和 ++i有什麼不同
時間Thu Apr 30 18:20:56 2009
意思大概是這樣吧 不知道有沒有講錯= =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
1F:→ chrisdar:推 04/30 18:21
2F:推 godman362:問題是,它為什麼要這樣處理? 04/30 18:51
3F:→ godman362:這樣i++變成需要多一個tmp,不是比較慢嗎? 04/30 18:52
4F:→ sunneo:不一定需要多一個tmp,最佳化過速度是一樣的 04/30 18:52
5F:推 Fenikso:也不過慢個0.00000001秒 04/30 18:53
6F:→ sunneo:假使是採用程式碼重新排序來達成 效果就沒差 04/30 18:53
7F:推 typeotoco:compiler會幫忙處理最佳化吧 04/30 19:07
8F:推 cole945:對原生型別(像int)根本沒那麼複雜,而且沒人說+1一定要在什 04/30 19:17
9F:→ cole945:麼時候做.. i++,++i在語意上的差別比較重要.. 04/30 19:17
10F:推 uefang:能++i 時,就盡量不要用i++,能+=就不要寫+ 良好寫code習慣 04/30 23:56