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

i++和++i的区别总结

i++ 和 ++i 完整区别

1. 核心定义

  1. ++i前置自增先把 i 自身 +1,再返回自增后的新值。
  2. i++后置自增先返回 i 原来的值,运算结束后再把 i +1。

2. 分开单独写(无赋值、无表达式时,两者无区别)

int i = 2; ++i; // i=3 int j = 2; j++; // j=3

只单独一句自增,结果完全一样。

3. 放进表达式 / 赋值,差异巨大(重点)

示例 1:前置 ++i

int i = 2; int a = ++i;

执行步骤:

  1. i = i + 1 → i=3
  2. a = i → a=3 结果:i=3,a=3

示例 2:后置 i++

int i = 2; int a = i++;

执行步骤:

  1. 先把 i 当前值赋值给 a → a=2
  2. 再 i = i + 1 → i=3 结果:i=3,a=2

4. 经典对比代码

int x=5; int m = ++x; // x先变6,m=6 int y=5; int n = y++; // n先拿5,y最后变成6

5. 循环中使用(for 循环常规场景无差别)

// 两种效果一模一样 for(int i=0; i<10; i++){} for(int i=0; i<10; ++i){}

for 的第三段只是单独自增,不参与取值,性能上现代编译器会优化成一样代码。

6. 性能小知识(C++)

  • ++i:直接返回自身引用,无临时变量
  • i++:需要保存旧值,生成临时副本
http://www.jsqmd.com/news/1109321/

相关文章:

  • PIC单片机驱动IS31FL3731 LED矩阵的嵌入式开发实践
  • STM32G431KB与M24C04-R EEPROM的非易失性存储实践
  • 终极指南:使用ArchivePasswordTestTool免费恢复遗忘的压缩包密码
  • 如何快速上手UABEA:Unity资源包提取与编辑的终极指南
  • VinXiangQi完全指南:让AI成为你的象棋教练,三步开启智能连线新时代
  • 赛事直播设备能自动生成战报?赛事运营痛点全解决
  • 如何用NBTExplorer轻松管理你的Minecraft游戏数据
  • 遗传算法实战:Python实现N皇后问题求解与调优
  • 小程序商城制作教程附小程序开发工具推荐:餐宝盈/BBWEYY/比文云/ChatGPT/Claude(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • 阴阳师百鬼夜行AI自动化实战指南:从零到精通的智能识别解决方案
  • 类的模板初阶
  • UABEA:重新定义Unity资源逆向工程的跨平台解析框架
  • 微信小程序怎么制作自己的小程序?5款小程序开发工具实测(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • 阴阳师自动化脚本终极指南:AI智能助手彻底解放你的游戏时间
  • 前后端RSA加解密实战:Java与JavaScript实现安全通信
  • Markdown Viewer浏览器插件:终极技术文档阅读解决方案
  • ASM330LHH与STM32F410RB的运动跟踪系统设计与优化
  • 基于Si4731与PIC18F47Q10的FM收音系统设计与实现
  • 抖音弹幕抓取神器完整指南:3分钟搭建实时数据监控系统
  • OpenSpeedy深度解析:Windows游戏加速工具的高级Hook技术实现与优化指南
  • DAC161S997与PIC18F4585构建高精度4-20mA电流环方案
  • 2026年短视频矩阵起盘:最少需要多少个账号才能跑通模型?
  • STM32L4S5ZI与KMR221实现低功耗多路电压检测方案
  • ASM330LHH与STM32F101ZG运动跟踪方案优化实践
  • IMU与MCU协同实现6DoF姿态追踪技术解析
  • ROC曲线与AUC:二分类模型评估的核心原理与实战指南
  • LTE Cat 1bis物联网模块与PIC微控制器的美洲应用方案
  • Selenium自动化测试中span元素定位的常见陷阱与解决方案
  • STM32电源管理:三路降压转换器TPS65263设计与优化
  • OpenCode中的各种常用命令