Warum werden initialisierte Variablen in C nicht immer auf 0 gesetzt?
C hat die Strategie nichts zu tun, was Zeit kostet und nicht vom Entwickler gefragt wurde. Variablen werden also eben nicht initialisiert, sondern haben einen [pseudo-]willkürlichen Wert.
int i; 
if( condition ) 
{ 
  doSomething(); 
  i = getValue(); 
} 
else 
{ 
  doSomethingDifferent(); 
  i = 1; 
} 
printf( “%d\n”, i ); 
i vorzubelegen wäre Zeitverschwendung, weil es später nur wieder überschrieben wird.