作用
递增运算符(++)和递减运算符(--)为对象的加1和减1操作提供了一种简洁的书写形式,这两个运算符还可以应用于迭代器,因为很多迭代器本身不支持算术运算符,所以此时递增和递减运算符除了书写简洁以外还是必须的。
形式
递增递减运算符有两种形式:前置版本(++i)和后置版本(i++)。
前置版本形式的运算符首先将运算对象加1(或减1)然后将改变后的对象作为求值结果。
后置版本形式的运算符也会将运算对象加1(或减1)但是求值结果是运算对象改变之前那个副本
代码
int i = 0,j; //定义两个int变量,i赋初值为0,j暂不赋值j = ++i; //j = 1,i = 1: 前置版本,先将i进行加1操作,在对j进行赋值j = i++; //j = 1,i = 2: 后置版本,(此时j = 1,i = 1)先对j进行赋值,再对i进行加1操作
注意
这两种运算符必须作用于左值运算对象。前置版本将对象本身作为左值返回,后置版本则将对象原始值的副本作为右值返回。
不理解左值右值的可以参考:理解C和C++中的左值和右值_xuwqiang1994的博客-CSDN博客_左值和右值
建议
除非必需,否则不建议使用后置版本
原因:前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回,改变了运算对象。运与之相比,后置版本需要将原始值存储下来以便于返回这个未修改的内容。如果我们不需要修改前的值,那么后置版本的操作就是一种浪费(迭代器中尤其明显)。