首页 > 解决方案 > C++ 中后增量的后增量

问题描述

如果我在 C++ 中使用嵌套增量运算符,例如

int a = 1;
int b = (a++)++;

它给出了编译时错误:

error: lvalue required as increment operand

但是,如果我写

int a = 1;
int b = ++(++a);

的新值b变为 3。

这是什么原因?

标签: c++increment

解决方案


(a++)返回一个旧值为 的临时右值a。右值没有可用的后增量运算符。


推荐阅读