摘要:
首先,该表达式为错误表达式和未定义表达式。该表达式的解析顺序:++i++ ++ +i++ +i (1)算入优先级的话运算顺序为:(++((i++)++)) + (i++) + i (2)因为编译器在解析字符串时总是向后寻找可能的有意义的串,所以,这个解析式不会被解释为(++i++) + (++i++) + i (3)(2)式中第一个i先后置++得到i++(因为后置++优先级比前置++高),是一个右值,这个中间表达式再后置++就无法编译了,因为++运算符需要左值,而i++是右值(不信可以尝试在代码中写i++++,编译器会告诉你++需要左值)。另一方面,第一个(2)... 阅读全文