Tag:

为什么降低优先级运算符首先执行?

可能重复: 运算符优先级问题 我们知道前缀的优先级大于“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; } 如果++优先级大于&&和|| 然后所有前缀应首先执行。 在此之后i=-2,j=3,k=1然后&&将首先执行。 为什么输出显示: -2 2 0 1 ? 该程序的行为在ubuntu v12.04上也是相同的。