c/c++中的i++和++i的区别
2024-09-04 18:28:47
使用 i++ vs. ++i
i++是先赋值再加1
++i是先加1再赋值
到目前为止,你已经学习了如何编写下面这样的 C++ for 循环:
for (int i = 0; i < 10; i++) {}
这条语法同 Python 的 for 循环语法十分相似;然而,你也可以这样编写 for 循环:
for (int i = 0; i < 10; ++i) {}
这两者之间有什么区别?为什么它们都可以运行?
事实上,i++ 和 ++i 都会带来同样的结果;这些都是 i=i+1 的缩写形式,它们之间的区别也十分微妙。
int i = 5;
int x = i++; // x = 5, i = 6 (called postfix)
int x = ++i; // x = 6, i = 6 (called prefix)
在两种情况中,i 变量都增加了 1。在后缀式 i++ 的情况中,先计算了int x = i,再出现了 i=i+1。
而在前缀式 ++i 的情况中,i = i + 1 先出现,再执行了 int x = i。
相比 i++,许多代码指南更推荐使用 ++i。在实际操作中,当使用整数变量时,两者的效率相同。
然而,当你编写一个重载 ++ 运算符的 C++ 类时,这两者之间又有一些差别。在 Python 矩阵项目中你见过了操作重载,其中代码重载了数学符号来进行矩阵加法、减法、乘法,等等。
重载后缀式运算符时,C++ 需要记录两个值。在例子中,记录的值是 5 和 6。而对于前缀式运算符而言,C++ 只需要记录一个值:6。因此,当重载 ++ 运算符时,使用前缀式运算符比后缀式更加高效。
最新文章
- 如何注册微信小程序
- tp框架之模板继承
- PHP 小数点保留两位
- apache+tomcat整合后的编码问题
- 【Unity】12.5 Navmesh Obstacle组件
- java--字符串替换replace,replaceAll,replaceFirst
- office2010官方下载 免费完整版.zip
- 正则匹配 去掉 多余的js和html标签
- 关于使用json 字符串转换为字典问题
- 关于网页强制被跳转到wpkg.org的解决
- (转载)AS3中的mouseEnabled与mouseChildren
- POJ 3669 广度优先搜索
- Button和ImageButton
- hdu 4779 Tower Defense 2013杭州现场赛
- jdk阅读xml文件
- 【原创】构建高性能ASP.NET站点 开篇
- bzoj2243[SDOI2011]染色 树链剖分+线段树
- Java异常处理-----Throwable类
- Masonry 与 frame 混用导致的问题
- 树状数组 || JZOI 1024. @szefany 的树