前言:
在 C++ 中,++i
和 i++
都是用于对变量进行自增操作的语法,其中++i
(前置自增)先对变量进行自增操作,而后返回自增后的值,而 i++
(后置自增)先返回变量的值,而后再对变量进行自增操作。
特别强调:++i
(前置自增)不会产⽣临时对象, i++
(后置自增)必须产⽣临时对象,临时对象会导致效率降低
1、 ++i
(前置自增):
++i 的执行:
- 先对变量进行自增操作,然后返回自增后的值。
- 自增操作是立即执行的,即在当前表达式中。
- 返回的是自增后的值。
++i 的实现:
int& int::operator++ (){
*this +=1;
return *this;
}
示例代码:
int i = 5;
int a = ++i;
// i 的值变为 6,a 的值也是 6
2、 i++
(后置自增):
i++ 的执行:
- 先返回变量的值,然后再对变量进行自增操作。
- 自增操作是在表达式结束后执行的。
- 返回的是自增前的值。
i++ 的实现:
const int int::operator(int){
int oldValue = *this;
++(*this);
return oldValue;
}
示例代码:
int i = 5;
int a = i++;
// i 的值变为 6,a 的值是 5