int i=0;
if(4||1&&++i)
{
printf("%d",i);
}
O/p=0
但根据我o / p应该是1由于preincrement .... plz解释
答案 0 :(得分:2)
当我们使用||
时,它将检查第一个条件是否为假,然后它将进入第二个条件,依此类推,但是当它找到真实条件时它将返回1。
在这种情况下,4为真,因此它不会评估此处1 && ++i
的进一步陈述,而是直接转到print("%d",i);
当您将i
初始化为0
时,它会打印值0
。
如果您还希望条件评估1 && ++i
,则代替||
(或)使用&&
(AND)。