На языке C, если инициализировать массив следующим образом:
int a[5] = {1,2};
тогда все элементы массива, которые не были инициализированы явно, будут неявно инициализированы нулями.
Но если я инициализирую массив следующим образом:
int a[5]={a[2]=1};
printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]);
выход:
1 0 1 0 0
Я не понимаю, почему a[0]
печатает 1
вместо 0
? Это неопределенное поведение?
Примечание: этот вопрос был задан в интервью.