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

i++与++i的区别

在C++中, i++ (后自增)和 ++i (前自增)都用于将变量值加1,但核心区别在于操作顺序和返回值,具体如下:

 

1. 操作顺序不同

 

-  ++i (前自增):先将变量值加1,再使用新值。

cpp

int i = 5;

int j = ++i; // i先变为6,再将6赋给j → i=6,j=6

 

 

-  i++ (后自增):先使用变量的原始值,再将值加1。

cpp

int i = 5;

int j = i++; // 先将5赋给j,i再变为6 → i=6,j=5

 

 

2. 返回值类型

 

-  ++i :返回变量本身的引用(左值),可继续赋值。

cpp

int i = 5;

(++i) = 10; // 合法,i先加1变为6,再被赋值为10 → i=10

 

 

-  i++ :返回临时值(右值),不能继续赋值。

cpp

int i = 5;

(i++) = 10; // 编译错误,i++返回的是临时值(5),无法赋值

 

 

3. 效率差异(针对自定义类型)

 

- 对基本类型(int、float等),两者效率几乎无差别(编译器会优化)。

 

- 对自定义类对象, ++i 更高效:

 

-  ++i 直接修改对象并返回引用,无临时对象生成。

 

-  i++ 需创建临时对象保存原始值,再修改对象,开销更大。

 

4. 常见使用场景

 

-  ++i :常用于需要立即使用新值的场景(如循环计数器)。

cpp

for (int i = 0; i < 10; ++i) { // 推荐用前自增,效率略高

    cout << i << endl;

}

 

 

-  i++ :当需要先使用原始值,再自增时(如表达式中间步骤)。

cpp

int a = 3, b;

b = a++ + 5; // b = 3+5=8,a变为4

 

 

总结

 

- 前自增 ++i :先自增,再取值 → 返回引用 → 效率更高(类对象场景)。

 

- 后自增 i++ :先取值,再自增 → 返回临时值 → 适用于需要原始值的场景。

使用时需注意顺序对逻辑的影响,避免因混淆导致bug。

相关文章:

  • B2B供应链交易平台多商户电商商城系统开发批发采购销售有哪些功能?发展现状如何?
  • 第14篇:数据库中间件的分布式配置与动态路由规则热加载机制
  • 使用 pytdx,`TdxHq_API` 接口下载数据的 AI 编程指引提示词
  • C++17 std::string_view:性能与便捷的完美结合
  • 5g LDPC编译码-LDPC编码
  • 解决启动SpringBoot是报错Command line is too long的问题
  • 玄机 日志分析-Tomcat日志分析 WriteUp
  • ES6从入门到精通:前言
  • Python实现prophet 理论及参数优化
  • postgresql|数据库|只读用户的创建和删除(备忘)
  • Manus 框架与 COKE 框架解析及完整 Demo
  • 从走线到互连:优化高速信号路径设计的快速指南
  • 复发白血病异基因造血干细胞移植后疗效的改进策略
  • 性能监控的核心要点
  • AI书签管理工具开发全记录(二十):打包(完结篇)
  • Oracle 数据库对象管理:表空间与表的操作
  • STL 5 适配器
  • leetcode_35.搜索插入位置
  • Vue 模板语法之指令语法详解
  • 如何xml序列化 和反序列化类中包含的类
  • 郑州免费做网站的/服务营销论文
  • vps新建网站/自己怎么做一个网页
  • 山西网络营销推广seo/郑州搜狗关键词优化顾问
  • 厦门网站制作案例/南宁网站seo优化公司
  • 网站架构演变流程/免费个人网站模板
  • 沙田镇网站建设/百度推广引流