[英]Post increment operator ++
cout<<(x++)++; //fails
cout<<++(++x); //passes
为什么后期增量失败? 我看到它发生但不确定技术原因。
x++
返回一个右值,因此您无法再次执行++
。 另一方面, ++x
返回一个左值,因此您可以对其执行++
。
这就是增量运算符在C / C ++中的工作方式。
如果将++
放在变量之后(后缀增量),则整个表达式在递增之前计算为变量的值。
如果将++
放在变量之前(前缀增量),则表达式将计算增量操作后的值。
前缀操作返回对传递的变量的引用,而后缀版本返回一个临时值,该值不得递增。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.