博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 自增、自减 操作符
阅读量:6084 次
发布时间:2019-06-20

本文共 505 字,大约阅读时间需要 1 分钟。

自增(++)和自减(--)操作符,都分为前置(++i、--i)和后置(i++、i--)两种形式。应该优先使用前置形式,只在必要时使用后置形式。

道理很简单:前置操作符需要做的工作更少,只需加1后返回结果即可。而后置形式需要先保存操作数原来的值,然后加1,再返回原来的值。对于内置类型,编译器可以对后置进行优化。但对于非内置类型,后置操作符所做的额外工作可能会花费很大的代价。所以养成使用前置操作这个好习惯,就不必操心性能差异的问题。

不过有时的确需要返回变量加1前的值,这时就必须要使用后置操作符了。比如下面这段代码非常“流行”:

vector
::iterator iter = ivec.begin();while (iter != ivec.end())cout << *iter++ << endl;

后增++的优先级高于解引用操作,所以先执行iter++,iter加1后返回原值的副本,*号操作的是iter未加1前的副本。这里如果使用前置++就有问题了,ivec的第一个元素不会输出,并且会试图对一个多余的元素进行解引用。

【学习资料】 《c++ primer》

转载地址:http://nxzwa.baihongyu.com/

你可能感兴趣的文章
iOS开发之BLE(一)——理论知识
查看>>
Sql 查询锁
查看>>
HTTP Protocol
查看>>
Codeforces 919E - Congruence Equation
查看>>
React Diff 算法
查看>>
返回上一页几种方法
查看>>
WPF 自定义ComboBox样式,自定义多选控件
查看>>
WPF 自定义MenuItem样式
查看>>
Numerical Geometry of Image
查看>>
1107 Social Clusters
查看>>
Python之路【第十八篇】:模块知识
查看>>
Frogger
查看>>
人机交互评价
查看>>
python发送邮件
查看>>
从页面上灵活增删改查
查看>>
SQL操作简单实现
查看>>
C# 只开启一个程序,如果第二次打开则自动将第一个程序显示到桌面
查看>>
java基础4
查看>>
patch 打补丁,和diff 生成制作补丁
查看>>
ios之UITextView
查看>>