当前位置: 首页 > news >正文

【C++ Primer Plus学习记录】递增运算符(++)和递减运算符(--)

递增运算符(++)和递减运算符(--):前缀版本位于操作数前面,如++x;后缀版本位于操作数后面,如x++。两个版本对操作数的影响是一样的,但是影响的时间不同。这就像吃饭前买单和吃饭后买单的最终结果是一样的,但是买单的时间不同。

程序清单5.7演示递增运算符(++)的这种差别。

//5.7
#if 1
#include<iostream>
using namespace std;int main()
{int a = 20, b = 20;cout << "a   = " << a   << ":   b = " << b << endl;cout << "a++ = " << a++ << ": ++b = " << ++b << endl;cout << "a   = " << a   << ":   b = " << b << endl;system("pause");return 0;
}
#endif

a++意味着使用a的当前值计算表达式,然后将a的值加1;而++b的意思是先将b的值加1,然后使用新的值来计算表达式

虽然选择使用前缀格式还是后缀格式对程序的行为没有影响,但执行速度可能有细微的差别。对于内置类型和当代的编译器而言,这看似不是什么问题。然而,C++允许您针对类定义这些运算符,在这种情况下,用户这样定义前缀函数:将值加1,然后返回结果;但后缀版本首先复制一个副本,将其加1,然后将复制的副本返回。因此,对于类而言,前缀版本的效率比后缀版本高。

总之,对于内置类型,采用哪种格式不会有差别;但对于用户定义的类型,如果有用户定义的递增和递减运算符,则前缀格式的效率更高。

http://www.lryc.cn/news/239473.html

相关文章:

  • Oracle 数据库中 查询时如何使用日期(时间)作为查询条件
  • Tomcat 基线安全加固操作
  • redis缓存穿透、击穿、雪崩
  • 什么是数字孪生?
  • 【DevOps】Git 图文详解(八):后悔药 - 撤销变更
  • WPF基础DataGrid控件
  • 丐版设备互联方案:安卓linux互联局域网投屏,文件共享,共享剪切板
  • GZ033 大数据应用开发赛题第08套
  • 【SpringMvc】SpringMvc +MyBatis整理
  • java springboot测试类鉴定虚拟MVC运行值与预期值是否相同
  • UE5的TimeLine的理解
  • react原理及合成事件原理
  • 独立版求职招聘平台小程序开发
  • Redis事务+秒杀案例
  • 目标分割技术-语义分割总览
  • 基于C#实现最长公共子序列
  • 物联网AI MicroPython学习之语法 SPI串行外设通信
  • 电动汽车充放电V2G模型MATLAB代码
  • 【大数据Hive】hive 优化策略之job任务优化
  • OpenAI再次与Altman谈判;ChatGPT Voice正式上线
  • 【JS】Chapter15-高阶技巧
  • Google Chrome 任意文件读取 (CVE-2023-4357)漏洞
  • psql 模式(SCHEMA)
  • 网络吞吐量 公网带宽有关吗?
  • Linux设置静态IP
  • 六、Big Data Tools安装
  • 数据结构【DS】特殊二叉树
  • 【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包
  • 交替最小二乘法
  • 封面从这里取好啦