【发布时间】:2012-08-28 02:45:31
【问题描述】:
我们知道前缀的precedence大于“逻辑与”(&&)并且“逻辑与”的优先级大于“逻辑或”(||)。
Below program好像违反了:
int main()
{
int i=-3,j=2,k=0,m;
m=++i||++j&&++k;
printf("%d %d %d %d",i,j,k,m);
return 0;
}
如果++ 的优先级大于&& 和||,则所有前缀都应首先执行。在此之后i=-2,j=3,k=1 和&& 将首先执行。
为什么输出显示:-2 2 0 1?
该程序的行为在 ubuntu v12.04 上也是相同的。
【问题讨论】:
标签: c operator-precedence