Loading

i++和++i

  1. i++ 返回原来的值,++i 返回加1后的值。
  2. i++ 不能作为左值,而++i 可以
    • i++返回的是临时变量
  3. 对于非基本类型,++i性能比i++高
// 前缀形式:
int& int::operator++() //这里返回的是一个引用形式,就是说函数返回值也可以作为一个左值使用
{//函数本身无参,意味着是在自身空间内增加1的
  *this += 1;  // 增加
  return *this;  // 取回值
}

//后缀形式:
const int int::operator++(int) //函数返回值是一个非左值型的,与前缀形式的差别所在。
{//函数带参,说明有另外的空间开辟
  int oldValue = *this;  // 取回值
  ++(*this);  // 增加
  return oldValue;  // 返回被取回的值
}

白夜行的狼:++i、i++、i+=1、i=i+1的区别
知乎问答:++i 与 i++的区别在哪里?

posted @ 2020-10-25 11:27  水纸杯  阅读(111)  评论(0)    收藏  举报