C++中后递增的后递增
如果我在 C++ 中使用嵌套的增量运算符,例如
int a = 1;
int b = (a++)++;
它给出了一个编译时错误:
error: lvalue required as increment operand
但是,如果我写
int a = 1;
int b = ++(++a);
的新值b变为 3。
这是什么原因?
回答
(a++)返回一个旧值为 的临时右值a。没有可用于右值的后增量运算符。
- @Top-Master 你在我回答后更新了你的答案。您上面的示例导致未定义的行为。