后增量运算符++

时间:2011-09-13 06:35:25

标签: c++

cout<<(x++)++; //fails 
cout<<++(++x); //passes

为什么帖子增量失败?我看到它发生但不确定技术原因。

3 个答案:

答案 0 :(得分:13)

x++会返回右值,因此您无法再次执行++。另一方面,++x会返回左值,以便您可以对其执行++

答案 1 :(得分:4)

这是增量运算符在C / C ++中的工作方式。

如果将++放在变量之后(后缀增量),整个表达式将在递增之前计算变量的值。

如果将++放在变量(前缀增量)之前,表达式将计算增量操作后的值。

当前缀操作返回对传递的变量的引用时,后缀版本返回一个临时值,该值不得递增。

答案 2 :(得分:1)

完全。你不能在Rvalue上执行++。关于rvalue如何工作的一个很好的解释是here