[开发语言][C++]:递增递减运算符

什么是递增递减运算符


递增运算符和递减运算符为对象的+1和-1提供了简洁的书写形式。

自增自减运算符的应用:

这两个运算符除了应用在算术运算,还可应用于迭代器,因为很多迭代器并不支持算术运算。

递增和递减运算符有两种书写形式:前置版本和后置版本。

  • 前置版本 ++i & --i:首先将运算对象+1/-1,然后将改变的对象作为求值结果。

  • 后置版本 i++ & i--:首先将运算对象+1/-1,然后将运算对象改变之前的那个值的副本作为求值结果。

cpp 复制代码
int i, j = 0;
j = ++i;  // 前置版本,i = 1,j = 1,获得递增之后的值
j = i++;  // 后置版本,i = 2,j = 1,获得递增之前的值

除非必须,否则不用递增递减运算符的后置版本!!

前置版本的运算符,避免了不必要的工作,它把运算对象+1后,直接返回了运算后的对象,期间不涉及对象的拷贝等操作;而后置运算符,则需要将运算对象先保存下来,用于+1后,返回之前的对象,涉及到运算对象的拷贝等操作。

如果你并不需要返回递增/递减之前的值,则强烈建议不使用递增运算符的后置版本!!

相关推荐
bluebonnet2718 分钟前
【Python】一些PEP提案(六):元类、默认 UTF-8、Web 开发
开发语言·前端·python
我不是立达刘宁宇1 小时前
php危险函数,二.assert()[现版本已弃用]
开发语言·php
lsnm1 小时前
【LINUX网络】HTTP协议基本结构、搭建自己的HTTP简单服务器
linux·运维·服务器·c语言·网络·c++·http
JD技术委员会2 小时前
如何写出更清晰易读的布尔逻辑判断?
开发语言
isyangli_blog2 小时前
(2-10-1)MyBatis的基础与基本使用
java·开发语言·mybatis
qiuyunoqy2 小时前
list模拟实现
数据结构·c++·list
小周同学:2 小时前
在 Vue2 中使用 pdf.js + pdf-lib 实现 PDF 预览、手写签名、文字批注与高保真导出
开发语言·前端·javascript·vue.js·pdf
small_wh1te_coder2 小时前
GCC深度剖析:从编译原理到嵌入式底层实战
汇编·c++·面试·嵌入式·状态模式·c
汤永红3 小时前
week1-[循环嵌套]蛇
数据结构·c++·算法
teeeeeeemo3 小时前
跨域及解决方案
开发语言·前端·javascript·笔记