程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ++i和i++哪個效率高?

++i和i++哪個效率高?

編輯:C++入門知識

這個問題需要分兩種情況來解說:   1、當變量i的數據類型是c++語言默認提供的類型的話,他們的效率是一樣的。   int a,i=0;     a=++i;匯編代碼如下:    int a,i=0; 01221A4E  mov         dword ptr [i],0   a=++i; 01221A55  mov         eax,dword ptr [i]  01221A58  add         eax,1  01221A5B  mov         dword ptr [i],eax  01221A5E  mov         ecx,dword ptr [i]  01221A61  mov         dword ptr [a],ecx   int a,i=0;     a=i++;匯編代碼如下:     int a,i=0; 009E1A4E  mov         dword ptr [i],0   a=i++; 009E1A55  mov         eax,dword ptr [i]  009E1A58  mov         dword ptr [a],eax  009E1A5B  mov         ecx,dword ptr [i]  009E1A5E  add         ecx,1  009E1A61  mov         dword ptr [i],ecx   從匯編代碼可以看出,他們的執行行數是一樣的!     2、我們自定的數據類型,++i效率高於i++,通過運算符重載來給大家說明這一點。   Operator Operator::operator++() {    ++value;    //內部成員變量    return *this; }   Operator Operator::operator++(int) {  Operator temp;  temp.value=value;  value++;  return temp; }   看到了嗎?後++必須要有一個臨時對象才可以完成。所以他的效率自然就下降了!  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved