博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
i++和++i的区别
阅读量:5010 次
发布时间:2019-06-12

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

我们经常对变量进行自增或自减的操作,一般来说有两种形式:i++或者++i。这两者之间有什么差异呢?

首先,我们知道i++是先对i进行相关操作再+1;而++i则是先进行+1再进行相关的操作:

举个简单的例子:

1  int tmp = 0;2  cout << tmp++ << endl;    //先输出,再+1 3  cout << ++tmp << endl;    //先+1,在输出

这里的输出结果为:

0

2

接下来,我们看看二者的实现:

1 int& operator++(){     //++i     2       *this += 1; 3       return *this; 4 } 5  6 int operator++( int ){    //i++ 7       int bak = *this; 8       *this += 1; 9       return bak;10 }

从以上代码可以看出,++i实际对地址进行操作(这里采用引用变量),不存在内存拷贝的情况;而i++则是对拷贝变量进行操作,存在内存拷贝的操作。因此,++i会比i++的效率高那么一点点,当然二者具有不同的使用场景,大家可以根据实际情况进行选择。

转载于:https://www.cnblogs.com/tkblack/p/11207402.html

你可能感兴趣的文章
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>
记忆--1.致我们不可缺少的记忆
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>
react项目
查看>>
C# 万年历 农历 节气 节日 星座 星宿 属相 生肖 闰年月 时辰(转)
查看>>
A Simple Tree Problem
查看>>
Modular Inverse [ZOJ 3609]
查看>>
MySQL性能测试工具之mysqlslap使用详解
查看>>