【发布时间】:2011-07-24 14:25:05
【问题描述】:
C Operator Preference Table 表示() 的优先级较高。
代码:
# include <stdio.h>
int main()
{
int temp=2;
(temp += 23)++; //Statement 1
++(temp += 23); //Statement 2
printf("%d",temp);
return 0;
}
我的问题是,虽然语句 2 中括号的优先级高于前缀运算符,但为什么会出现错误。 在语句 1 中,两者具有相同的优先级,但评估顺序是从左到右。还是同样的错误。 第三个疑问:运算符 += 的优先级要低得多,那么为什么会导致错误。
error: lvalue required as increment operand
【问题讨论】:
-
有什么理由需要这种复杂的代码?
-
@Laurent:没有具体原因。只是在令人困惑的主题上检查我自己的技能。