Ecco il codice:Non capisco l'uscita di questo programma 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;
}
ecco l'output quando compilazione:
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
Non capisco il motivo per cui il valore [8] ritorna 1.784.505,816 mila? Il valore non è [8] supposto essere = valore [6] = valore [7] = 0? A proposito, compilo il codice tramite gcc sotto Mac OS X Lion.
Ma se si utilizza 'int valore [10] = {};', quindi sarebbero zero inizializzati. –
@ ChrisJester-Young: vuoi dire '{0}'. Questa è una domanda in C. –
@CharlesBailey: +1 Wow, buona chiamata. Vedo che '{}' è un'estensione gcc (e quando si compila con '-pedantic', si ottiene un messaggio di avvertenza: ISO C proibisce le parentesi graffe di inizializzazione vuote). (È troppo tardi per me modificare il mio commento ora, ahimè.) –