Поясните код - C (СИ)
Формулировка задачи:
Прошу пояснить, видимо что то я не так понимаю.
Вывод: -2, 3, 0, 2.
Не понимаю условия if. Почему m получает j , а не k.
Разве это не тоже самое
Тоесть ++i равно -2 и это должно дать false т.к. true даёт результат от 1 до 255.
Так почему же true???
i=-3; j=2; k=0; m = ++i ? j++ : ++k; printf("%d, %d, %d, %d\n", i , j, k, m);
if (++i) m = j++; else m=++k;
Решение задачи: «Поясните код»
textual
Листинг программы
m = ++i ? j++ : ++k;
Объяснение кода листинга программы
В данном коде происходит следующая последовательность действий:
- Переменная
i
увеличивается на 1. - Результат этого увеличения (теперь
i
равен 2) используется в условии выражения. - Если условие выражения истинно (то есть
j
не равно 0), то выполняется следующее действие. - Переменная
j
увеличивается на 1. - Значение переменной
k
присваивается переменнойm
. - Если условие выражения ложно (то есть
j
равно 0), то выполняется следующее действие. - Переменная
k
увеличивается на 1. - Значение переменной
k
присваивается переменнойm
. Таким образом, в результате выполнения данного кода, значение переменнойm
будет равно 2 или 3, в зависимости от того, равно ли значение переменнойj
нулю или нет.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д