c++ ++i and i++
++i 在 i 存储的值上增加一并向使用它的表达式 ``返回" 新的, 增加后的值;
而 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在单独的语句中结果是一样的。
随机推荐
- TensorFlow运作方式入门
TensorFlow运作方式入门 代码:tensorflow/g3doc/tutorials/mnist/ 本篇教程的目的,是向大家展示如何利用TensorFlow使用(经典)MNIST数据集训练并评 ...
- [Docker] Docker Hub加速
一.缘由: 今天学习Flask,书上建议用Docker,那我就安装了DockerToolBox(WIN10系统只能用toolbox).其中从docker hub拉取ubuntu镜像时 docker p ...
- Javac编译器
One Compiler http://www.oracle.com/technetwork/java/jvmls2016-wimmer-3125555.pdf Hacking the OpenJDK ...
- intercepting IO request
Introduction to File System Filters https://msdn.microsoft.com/en-us/library/windows/hardware/dn6416 ...
- hdoj1257 最少拦截系统
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 利用ForgeryPy生成虚拟数据
在程序研发过程中,我们往往需要大量的虚拟实验数据.Python中有多个包可以用于生成虚拟数据,其中功能较为完善的是ForgeryPy. 1 安装 采用pip进行安装: pip install Forg ...
- Ribbon重试机制与Hystrix熔断机制的配置问题
Ribbon超时与Hystrix超时问题,为了确保Ribbon重试的时候不被熔断,我们就需要让Hystrix的超时时间大于Ribbon的超时时间,否则Hystrix命令超时后,该命令直接熔断,重试机制 ...
- LeetCode: Gray Code 解题报告
Gray CodeThe gray code is a binary numeral system where two successive values differ in only one bit ...
- LeetCode: Populating Next Right Pointers in Each Node II 解题报告
Populating Next Right Pointers in Each Node IIFollow up for problem "Populating Next Right Poin ...
- python pip 升级
首先安装python,在百度中搜索python,进入python官网.点击download,选择电脑对应的系统进行下载,此处以windows系统的python 3.5.1进行介绍,点击即可下载. ...