在C++中++i和i++有什么区别
前缀版本和后缀版本的 ++ 有很大的区别。
- 在前缀版本(即,
++i
)中,i的值被递增,表达式的值是i的新值。所以基本上,它先递增然后将一个值分配给表达式。 - 在后缀版本(即,
i++
)中,i的值被递增,但表达式的值是i的原始值。所以基本上,它先将一个值分配给表达式,然后递增变量。
例子
让我们看一些代码以便更好地理解−
#include<iostream>
using namespace std;
int main() {
int x = 3, y, z;
y = x++;
z = ++x;
cout << x << ", " << y << ", " << z;
return 0;
}
输出
这将给我们的输出−
5, 3, 5
为什么会这样呢?让我们详细看一下:
- 将x初始化为3
- 将y赋值为通过评估表达式x++所得到的值,即在递增之前x的值,然后递增x。
- 递增x然后将z赋值为通过评估表达式++x所得到的值,即递增后的x的值。
- 打印这些值。