C++ i++ 与 ++i 区别动画

int i = 5;
int a = i++; // a = 5, i = 6
int b = ++i; // b = 6, i = 6
1000ms
步骤: 0/4
i++ (后置递增)
内存中的 i
5
临时存储 (返回旧值)
5
点击"开始动画"查看 i++ 的执行过程
最终 a 的值
-
步骤: 0/4
++i (前置递增)
内存中的 i
5
临时存储 (返回新值)
6
点击"开始动画"查看 ++i 的执行过程
最终 b 的值
-

原理详解

i++ (后置递增)

  • 先使用当前值进行表达式计算
  • 后递增变量的值
  • 返回旧值的临时副本
  • 需要额外的临时变量存储旧值
int a = i++;
// 等价于:
// int temp = i; // temp = 5
// i = i + 1; // i = 6
// a = temp; // a = 5

++i (前置递增)

  • 先递增变量的值
  • 后使用新值进行表达式计算
  • 返回新值的引用
  • 不需要额外的临时变量
int b = ++i;
// 等价于:
// i = i + 1; // i = 6
// b = i; // b = 6
i++ 执行中
++i 执行中
动画完成