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 你在我回答后更新了你的答案。您上面的示例导致未定义的行为。

以上是C++中后递增的后递增的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>