Проблема присваиванию двух одинаковых переменных

Первый вариант:

int max, min = nabc[0];
printf("Max: %d Min: %d", max, min);

result:

Max: 6422224 Min: 1 // Ответ "max" НЕ верный

Второй вариант:

int max, min;
max = min = nabc[0];
printf("Max: %d Min: %d", max, min);

result:

Max: 3 Min: 1 // Ответ верный

В чём проблема? Не могу понять, почему из-за перебора присваивания происходит такая ошибка?


Ответы (1 шт):

Автор решения: Harry

Здесь

int max, min = nabc[0];

мы видим объявление неинициализированной переменной max и переменной min, инициализированной значением nabc[0].

Здесь же

int max, min;
max = min = nabc[0];

мы видим объявление двух неинициализированных переменных max и min и присвоение им значения nabc[0].

В С нет ни множественного присвоения, ни множественной инициализации через запятую.

→ Ссылка