今天在閱讀《google c++ 編程風格》的文檔的時候,5.10. 前置自增和自減:有一句話引起了我的注意:
對於迭代器和其他模板對象使用前綴形式 (++i) 的自增, 自減運算符.,理由是 前置自增 (++i) 通常要比後置自增 (i++) 效率更高。於是我查了查前置++和後置++的區別。
注意:《more effective c++》條款8也專門敘述了問題。後來我發現,下面的文章基本就是它的翻版,哈哈
前置++和後置++的區別
《C專家編程》中有如下描述(P276,人民郵電出版社):
++a表示取a的地址,增加它的內容,然後把值放在寄存器中;
a++表示取a的地址,把它的值裝入寄存器,然後增加內存中的a的值;(也就是說操作的時候用到的都是寄存器裡面的值,即自增前的值)
另外,網上找了篇文章,通過從運算符重載的角度來探討他們的不同,如下: