kar*_*hik 0 c operator-precedence
可能重复:
运算符优先级问题
我们知道前缀的优先级大于"LOGICAL AND"(&&),"LOGICAL AND"的优先级大于"LOGICAL OR"(||).
以下程序似乎违反了它:
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;
}
Run Code Online (Sandbox Code Playgroud)
如果优先级++大于&&,||则应首先执行所有前缀.在此之后i=-2,j=3,k=1,然后&&将首先执行.为什么输出显示:-2 2 0 1?
该程序的行为在ubuntu v12.04上也是相同的.