está el código aquí:No entiendo la salida de este programa en C
#include <stdio.h>
int main (void)
{
int value[10];
int index;
value[0] = 197;
value[2] = -100;
value[5] = 350;
value[3] = value[0] + value[5];
value[9] = value[5]/10;
--value[2];
for(index = 0; index < 10; ++index)
printf("value[%i] = %i\n", index, value[index]);
return 0;
}
Aquí está la salida cuando compilación:
value[0] = 197
value[1] = 0
value[2] = -101
value[3] = 547
value[4] = 0
value[5] = 350
value[6] = 0
value[7] = 0
value[8] = 1784505816
value[9] = 35
No entiendo por qué el valor [8] devuelve 1784505816? ¿No se supone que el valor [8] es be = value [6] = value [7] = 0? Por cierto, compilo el código a través de gcc bajo Mac OS X Lion.
Pero si usa 'int value [10] = {};', entonces se inicializarán en cero. –
@ ChrisJester-Young: Quiere decir '{0}'. Esta es una pregunta en C –
@CharlesBailey: +1 Guau, buena idea. Veo que '{}' es una extensión de gcc (y al compilar con '-pedantic', aparece un mensaje de" advertencia: ISO C prohíbe llaves de inicialización vacías "). (Es muy tarde para mí para editar mi comentario ahora, ¡ay!) –