为什么(++ i)++有效,“ ++ i ++”无效?
让我们考虑以下代码: int main() { int i = 2; int b = ++i++; return 3; } 编译时出现以下错误: <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ 这对我来说听起来很公平。后缀递增的优先级高于前缀递增的优先级,因此代码被解析为int b = ++(i++);,i是一个右值。因此,错误。 现在,让我们考虑带有括号的此变体,以覆盖默认优先级: int main() { int i = 2; int b …