繁体   English   中英

后增量运算符++

[英]Post increment operator ++

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

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

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

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

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

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

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

究竟。 你不能在Rvalue上执行++。 这里给出关于右值如何工作的一个很好的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM