Все переменные в этом объявлении
int a, b, c, d, e = 0;
не инициализируются, кроме последней переменной e
. Они были бы инициализированы нулями, если бы имели длительность хранения c. Однако эти переменные являются локальными переменными с автоматическим c сроком хранения и не инициализируются компилятором неявным образом.
Вам необходимо инициализировать каждую переменную, например
int a = 0, b = 0, c = 0, d = 0, e = 0;
Другой подход, если вы хотите инициализировать все переменные сразу нулем - значит заключить переменные в структуру, подобную
struct { int a, b, c, d, e; } s = { 0 };
. В этом случае все переменные будут инициализированы нулем. Вы можете получить к ним доступ, например, s.a
или s.b
и т. Д.
Вот демонстрационная программа.
#include <stdio.h>
int main(void)
{
struct { int a, b, c, d, e; } s = { 0 };
printf( "s.a = %d\n", s.a );
printf( "s.b = %d\n", s.b );
printf( "s.c = %d\n", s.c );
printf( "s.d = %d\n", s.d );
printf( "s.e = %d\n", s.e );
return 0;
}
Ее вывод
s.a = 0
s.b = 0
s.c = 0
s.d = 0
s.e = 0