Warum sehe ich seltsame Werte an, wenn ich drucken nicht initialisierten Variablen?

In der folgende code, der Variablen kein Anfangswert und bedruckt diese variable.

int var;
cout << var << endl;

Ausgabe : 2514932

double var;
cout << var << endl;

Ausgabe : 1.23769 e-307

Ich verstehe nicht, diese Ausgabe der Startnummern. Kann irgend jemand erklären mir das an?

  • Wenn Sie diesen code kompilieren. Funktioniert der compiler nicht erzeugen eine Menge von Warnungen über nicht initialisierte Variablen? Wenn Sie Ihren compiler Warnungen als Fehler behandeln (eine gute Idee), und erhöhen auch die Warnung Ebene, dann wird es nicht kompilieren und erstellen Sie sicherer code (Warnungen sind in der Regel logische Fehler).
  • ja, ich habe diesen code kompilieren mit gcc auf ubuntu. es war keine Warnung.
  • kompilieren mit -Wall, wird Ihnen helfen, vor Ort mehr Warnungen. Und dieses Problem wird angezeigt, wenn Sie verwenden die Flagge. gcc -Wall source.c -o myexecutable
  • Welche Werte haben Sie erwarten, dass Ihr Programm zu drucken statt?
  • Kennedy - ich erwarte gar nichts. ich war neugierig, was es ist.
  • Ich bin das hinzufügen dieser auf die C++ FAQ, weil wir nicht haben eine nicht initialisierte Variablen, die Frage, und meine Antwort gibt die kanonischen und technischen Gründe für die Ergebnisse.

InformationsquelleAutor cmuse | 2010-11-23
Schreibe einen Kommentar