int i=0;
if(4||1&&++i)
{
printf("%d",i);
}
O/p=0
Но по мне о/р должно быть 1 из-за прединкремента .... плз объяснитьЕсли условие, используя логические операторы
int i=0;
if(4||1&&++i)
{
printf("%d",i);
}
O/p=0
Но по мне о/р должно быть 1 из-за прединкремента .... плз объяснитьЕсли условие, используя логические операторы
Когда мы используем ||
он будет проверять, если первое условие ложно, то она будет идти ко второму условию и так далее, однако в настоящее время она находит истинное состояние он будет возвращать 1.
в этом случае 4 верно, так что не будет оценивать дальнейшие заявления здесь 1 && ++i
и он будет непосредственно перейти к print("%d",i);
Как вы h ave initialize i
to 0
он напечатает значение 0
.
Если вы хотите, если условие для оценки 1 && ++i
также, то вместо ||
(OR) использовать &&
(AND).
спасибо ani ..... я получил это – user2967440
было это дубликат пост ??? столько голосов вниз ???? – user2967440
Добро пожаловать. Если это полезно, добро пожаловать на ответ. – user1336087
Подробнее о коротком замыкании. –