dmitry_dev33
@dmitry_dev33

Почему при любом значении i, переменная a=1?

int i = 1, l = 1, j = 3, k = 3;
	int a = i++&&++j || k || l++;
	printf("\n %d\n", a);
  • Вопрос задан
  • 240 просмотров
Решения вопроса 3
Во-первых, если k != 0, то этого уже достаточно, чтобы всё выражение было true. Это элементарное свойство логического ИЛИ (дизъюнкции).

Во-вторых, чтобы в итоге было a == 0, нужно, чтобы было i++&&++j == 0, И k == 0, И l++ == 0. Если же хотя бы одно из них не 0, то будет a == 1. Попробуй:

int i = 0, l = 0, j = 0, k = 0;
Ответ написан
Комментировать
@axeax
i++&&++j выдаст true, нет?
Ответ написан
Комментировать
Ni55aN
@Ni55aN
i++ это 1
++j это 4
i++ && ++j это 1 (бинарная логическая операция "И")

1 || k это 1 (бинарная логическая операция "ИЛИ")
l++ это 1

1 || l++ это 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы