c使用逻辑运算符的程序

vin*_*mar 1 c

int main()
{
    int var1=4, var2=6;
    var2=var2||var1++&&printf("computer world");
    printf("%d%d",var1,var2); 
    getch();
}
Run Code Online (Sandbox Code Playgroud)

打印的答案是41.

问题:
这里不是打印'计算机世界'.根据优先级顺序,我们必须计算&&逻辑运算符,但这里的行为不是那样的,并且值var1应该在该语句之后递增但不是.我的预期答案是computer world51.

小智 6

它被称为"优先",而不是"优先".优先级与评估顺序不同.

由于||&&运算符短路,并且var2被认为是真的(因为6非零),所以不评估后递增操作和函数调用.