在 C++ 中,前置 ++
和后置 ++
的主要区别如下(以下内容同样适用于--
):
语法和返回值
前置 ++
(Prefix increment)
后置 ++
(Postfix increment)
性能差异
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class MyInt { int value; public: MyInt& operator++() { ++value; return *this; } MyInt operator++(int) { MyInt temp = *this; ++value; return temp; } };
|
使用示例
1 2 3 4 5 6 7 8
| int a = 5; int b = 5;
int x = ++a;
int y = b++;
|
推荐用法
- 优先使用前置
++
:性能更好,不需要创建临时对象
- 在循环中尤其重要:
1 2
| for (int i = 0; i < n; ++i) for (int i = 0; i < n; i++)
|
关键区别总结
特性 |
前置 ++ |
后置 ++ |
操作顺序 |
先递增后使用 |
先使用后递增 |
返回值 |
对象本身(引用) |
原值副本(临时对象) |
性能 |
更高 |
较低(有拷贝开销) |
适用场景 |
大多数情况 |
需要原值参与运算时 |