C++ 和 ++ 运算符

C++ and ++ operators

所以我正在查看以下代码片段

int a = 3;
int b = 2;
b = a++;
cout << ++b;

我一行一行的理解是:

  1. 发起一个=3
  2. 启动 b = 2;
  3. 将(a+1)的值赋给b,所以b = 4;
  4. 打印b+1,即5。

然而这是错误的,有人可以简单地解释一下吗?我是 C++ 新手

给你:

  • 发起一个=3
  • 启动 b = 2;
  • 将(a)的值赋给b,所以b=3,a自增4;
  • 打印b+1,即4。

在声明中:

b = a++

a 被评估为分配给 b 之后 a 然后递增所以 a = a+1.

另一方面:

b = ++a

增量 a 所以 a = a+1 before a 然后评估分配给 b.

你可以在这里深究:

Pre-increment or post-increment in C/C++

在 C++ 中,当在表达式中使用递增或递减时,“++”或“--”的位置很重要。 如果运算符在变量之前,则递增或递减将在表达式结束之前完成,在相反的情况下,递增或递减将在整个表达式执行后完成。

int b = ++a; // first add +1 to a, then assign a to b
int b = a++; // assign a to b, then add +1 to a