++i 和 i++
++i 和 i++ 的區別
1)i++ 返回的是 i 的值,++i 返回的是 i+1 的值
2)i++ 不能用作左值,++i 可以用作左值
左值和右值的區別是什么?
根本區別是:能否允許用取地址符號 & 來獲取相應的內存地址
++i 和 i++ 的實現
1 // ++i 的實現 2 // note:++i運算符重載時不需要加形參 3 int& int::operator++(){ 4 *this += 1; 5 return *this; 6 } 7 8 // i++ 的實現 9 // note:i++ 運算符重載時需要加形參 10 const int int::operator(int){ 11 int oldValue = *this; 12 ++(*this); 13 return oldValue;// 因為返回的是拷貝的臨時變量,所以不能是左值 14 }