码迷,mamicode.com
首页 > 编程语言 > 详细

c/c++中的i++和++i的区别

时间:2021-01-18 11:25:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:符号   十分   prefix   atom   int   记录   之间   for   指南   

使用 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。因此,当重载 ++ 运算符时,使用前缀式运算符比后缀式更加高效。

 

c/c++中的i++和++i的区别

标签:符号   十分   prefix   atom   int   记录   之间   for   指南   

原文地址:https://www.cnblogs.com/zhj868/p/14288780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!