优秀的编程知识分享平台

网站首页 > 技术文章 正文

C++中递增++递减--运算符前置与后置区别

nanyue 2025-06-08 23:12:04 技术文章 24 ℃

首先,要知道递增运算符是有副作用(side effect)的,指在计算表达式时对某些值进行了修改。那前置(prefix)和后置(postfix)的区别呢?

以for循环为例,经常会用到递增递减运算符,比如:

for (n = lim; n > 0; --n) {
  ...
}
  
for (n = lim; n > 0; n--) {
  ...
}

从逻辑上说,前缀格式(--n)和后缀格式(n--)没有任何区别,都是在在进入下一步之前将运算做完,最终效果是一样的。

然而,虽然这两种方式对程序的运行没有影响,但执行速度有细微的差别。不过,对于内置类型,比如int, float, double, 这不是什么问题。但是对于用户定义的类型,在使用前缀的情况下,值会加1,然后返回结果,但后缀中,会首先复制一个副本,再将其加1,然后返回复制的副本。因此,对于用户自定义的类型而言,前缀格式比后缀格式效率高。

Tags:

最近发表
标签列表