上周我进行了一次面试,面试官问我这个运算符优先级问题。请有人帮助我理解这个程序的逻辑。我正在使用 Ubuntu(linux)
int main()
{
int var = 90;
if(var += var == ++var ==8)
printf("val of var is %d \n",var);
}
这个程序的输出是 91。
如何评估循环中的多个 ==(关联性从左到右)???
有趣的是,如果我将代码调整为
int main()
{
int var = 90;
if(var += var == ++var)
printf("val of var is %d \n",var);
}
然后输出为 92。
这种行为是依赖于编译器的吗???