Confusión sobre la inicialización de la matriz en C
En lenguaje C, si inicializa una matriz como esta:
int a[5] = {1,2};
then todos los elementos de la matriz que no se inicializan explícitamente se inicializarán implícitamente con ceros.
Pero, si inicializo una matriz como esta:
int a[5]={a[2]=1};
printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]);
salida
1 0 1 0 0
No entiendo, ¿por quéa[0]
impresión1
en lugar de0
? ¿Es un comportamiento indefinido?
Nota Esta pregunta se hizo en una entrevista.