++i和i++的根本区别
【摘要】
至于++i和i++有什么区别,举个例子
1.a = i++; 等校为
a = i;
i = i + 1;
2.a = ++i; 等校为
i = i + 1;
a = i;
i++...
至于++i和i++有什么区别,举个例子
1.a = i++; 等校为
a = i;
i = i + 1;
2.a = ++i; 等校为
i = i + 1;
a = i;
i++和++i的 最重要的区别大家都知道就是 +1和返回值的顺序
但,两这还有一个区别(在C++中)就是i++在实现的时候,产
生了一个local object
class INT;
//++i 的版本
INT INT::operator++()
{
*this=*this+1;
return *this;
}
//i++ 的版本
const INT INT::operator ++(int)
{
INT oldvalue=*this;
*this=*this+1;
return oldvalue
}
所以从效率上来说++i比i++来的更有效率
具体细节你可以看More Effective C++ 的M6
看看C++类重载运算符就知道了。
对于i++的实现是:
int temp;
temp = i;
i = i+1;
return temp;
而++i的实现是:
i = i+1;
return i;
比如printf("%d",i++);是先输出i值随后i自加,而printf("%d",++i);正好相反
for(operation1;operation2;operation3)
{
//Do Something
}
都是按
operation1
operation2
//Do Something
operation3
的顺序来执行的
而i++与++i在单独的语句中结果是一样的。
简单而言: ++i 在 i 存储的值上增加一并向使用它的表达式 ``返回" 新的, 增加后的值; 而 i++ 对 i 增加一, 但返回原来的是未增加的值。
引用于 百度知道 https://zhidao.baidu.com/question/590293842.html
文章来源: hiszm.blog.csdn.net,作者:孙中明,版权归原作者所有,如需转载,请联系作者。
原文链接:hiszm.blog.csdn.net/article/details/53982017
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)