【发布时间】:2019-11-15 19:07:20
【问题描述】:
++x和x++有什么区别?
我知道 ++x 递增然后返回值。 和 x++ 分配值然后添加。
但我仍然不确定它是如何工作的以及何时使用其中任何一个。 请帮忙。提前致谢
【问题讨论】:
-
这似乎很明显,如果你想使用增量之前的值使用
x++,如果你想使用增量之后的值使用++x,如果你不在乎(所有你关心的是增加变量)然后使用。我个人更喜欢++x在不关心的情况下,但我似乎是少数。 -
由于我是老式的,如果我有选择的余地,我总是使用
++x而不是x++,因为前者不会比后者慢,尤其是在运算符重载的情况下.但这已经过时了——如果它曾经流行过的话。在这样的讨论中经常会说“编译器会优化它”这句话。 -
当 x 是一个类时会有性能影响,例如
std::map::iterator。见my answer to a related question。 -
@Bathsheba,我遵循与您相同的编码准则来增加变量。它对我来说并没有过时。
-
如果我需要在当前表达式中计算增量,那么我在所有其他情况下使用
++xx++。