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

📅 2026/7/2 14:13:56 👁️ 阅读次数 📝 编程学习
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++:需要保存旧值,生成临时副本