后增量运算符++

Post increment operator ++

本文关键字:运算符      更新时间:2023-10-16
cout<<(x++)++; //fails 
cout<<++(++x); //passes

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

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

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

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

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

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

没错。不能对右值执行a++。