2016-03-31 8 views
1

Ich bin in einem sehr rudimentären Anfänger-Programmierkurs, mit Schwerpunkt auf C++. Wir werden derzeit über Elementvariablen im Vergleich zu lokalen Variablen unterrichtet. Zu diesem Zweck habe ich dieses sehr einfache Programm geschrieben, um zu sehen, was die Ausgabe wäre, wenn eine lokale Variable deklariert aber nicht initialisiert ist und denselben Namen wie eine Membervariable hat, die initialisiert hat.C++: Nicht initialisierte Variable Ausgabe ist 0 in Xcode

Meine Erwartung ist, dass ich einige Müll Ausgabe von einigen sehr großen Zufallszahlen bekommen würde. Stattdessen ist die Ausgabe 0. Irgendein bestimmter Grund, warum das ist? Ich benutze Xcode, wenn das einen Unterschied macht.

+0

Ich kann mir nicht vorstellen, dass dieses Verhalten definiert ist. Haben Sie versucht, andere Compiler wie g ++ zu verwenden und zu sehen, ob Sie dieselben Ergebnisse erhalten? –

+0

Warum sollte es nicht 0 sein? Es darf alles sein, und 0 ist alles. – immibis

Antwort

3

Offiziell ist dies ein undefiniertes Verhalten. Einige Umgebungen löschen jedoch den Speicher aus. Während andere es nicht initialisiert lassen. Eine Sache, auf die Sie sich verlassen können, ist, dass sie sich nicht in allen Umgebungen gleich verhält (z. B. Visual Studio, GCC usw.)

Verwandte Themen