Ja ok, der Standard für C/C++ sieht vor, dass statische Variablen mit 0 oder NULL vorbelegt werden ... Also werden globale Variablen (dort wird implizit static verwendet) oder Variablen mit dem Schlüsselwort static, mit 0 (oder bei Pointern mit NULL; was aber auch 0 sein kann ... aber da kommen wir jetzt vom hundertsten ins tausendste ...) vorbelegt.
Bei mir geht gcc (Version 4.4.5 [Debian]) sogar her und zeigt das selbe verhalten auch für Variablen, die in der main() definiert wurden (ohne static). Also auch alle uninitialisierten Variablen innerhalb von main() werden mit 0 vorbelegt. Nur Variablen in Funktionen sind unbestimmt. Aber nur wenn ich NICHT im Debugging-Modus bin ...
Somit ist das ganze gar nicht immer so leicht zu sagen sagen ... besser man initialisiert immer (vor der Verwendung; also alles außer Zuweisungen

) und verlässt sich nicht auf Rätselraten. Denn bei einem anderen Compiler, einer anderen Einstellung oder einer anderen Version kann alles wieder ganz anders aussehen ...