Я работаю над простой программой на C, но столкнулся с некоторой путаницей. Ниже приведен код:
int main(void) {
int i, j, k;
i = 3;
j = 4;
k = 5;
printf("%d ", i < j || ++j < k);
printf("\n"); // LINE 1
printf("%d %d %d", i, j, k); // LINE 2
return 0;
}
В приведенной выше программе переменная j начинается с 4. Затем в операторе printf строки 1 мы увеличиваем значение j на 1 (++j = 5).
Итак, теоретически я бы предположил, что когда j печатается в printf (строка 2), оно печатается как 5, поскольку мы сделали приращение в строке 1 для j. Однако каждый раз, когда я запускаю код, строка 2 печатает исходное значение j, которое равно 4, а НЕ 5.
Есть ли что-то, что мне не хватает?