++i; i++
一、++i 和 i++ 的区别:
1. i++返回的是i的值, ++i返回的是i+1的值;
2. i++不能用作左值, ++i 可以用作左值。
二、左右值的根本区别是什么?
答:左右值的根本区别是: 是否允许用取地址运算符&获取相应的内存地址。
三、 i++ 和++i的实现
1. ++i 实现:
int& int::operator++()
{
*this +=1;
return *this;
}
2. i++ 实现:
const int int::operator(int)
{
int oldValue = *this;
++(*this);
return oldValue;
}
从效率上来看, ++i 效率高于 i++
原文链接:https://blog.csdn.net/qnavy123/article/details/79482999