如果条件使用逻辑运算符

时间:2014-08-31 12:15:52

标签: c if-statement logical-operators

        int i=0;
    if(4||1&&++i)
    {
    printf("%d",i);
    }

O/p=0

但根据我o / p应该是1由于preincrement .... plz解释

1 个答案:

答案 0 :(得分:2)

当我们使用||时,它将检查第一个条件是否为假,然后它将进入第二个条件,依此类推,但是当它找到真实条件时它将返回1。

在这种情况下,4为真,因此它不会评估此处1 && ++i的进一步陈述,而是直接转到print("%d",i);

当您将i初始化为0时,它会打印值0

如果您还希望条件评估1 && ++i,则代替||(或)使用&&(AND)。