后增量和预增量和Rvals

时间:2014-02-27 03:44:44

标签: compiler-construction parser-generator lalr

int a;
a = a+++a; // Why does this create no error but
a = a+++++a; // Create a semantic error

我有点困惑为什么第二行不会造成任何错误 但为什么第三个会产生语义错误?

1 个答案:

答案 0 :(得分:4)

最大蒙克。 ++的结果是r-val。下一个运算符是++,它试图递增r-val并产生错误。