||和&&到底先算哪个

程序如下

#include <stdio.h>
int main()
{
    int a = 1;
    int b = 0;
    int c = 0;
    if(a || b && c)
    {
        printf("真\n");
    }
    else
    {
        printf("false\n"); 
    }
    return 0;
} 

运行的结果:真

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 1;
    int c = 0;
    if(a || b && c)
    {
        printf("真\n");
    }
    else
    {
        printf("false\n"); 
    }
    return 0;
} 

运行结果为:false

其实想表达的逻辑是((a || b) && c)
所以最好的方式还是加上括号

如果直接 a || b && c
当a为真的时候,就直接整个条件为真了,因为||的运算规则(未完待续)

猜你喜欢

转载自blog.csdn.net/kgdysg/article/details/80441534