這個問題需要分兩種情況來解說: 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; } 看到了嗎?後++必須要有一個臨時對象才可以完成。所以他的效率自然就下降了!