In C++ wird bei den Variablen zwischen der Deklaration, der Definition und der Initialisierung unterschieden. In dieser Programmiersprache kann eine Variable erst verwendet werden, wenn sie vorher deklariert wurde.
[sc name=“adsense_InText_ad“]
Eine Deklaration informiert den Compiler über den Typ einer Variablen, erzeugt aber keinen Code, der in der ausführbaren Datei verwendet wird. Durch eine korrekte Deklaration weiß der Compiler, wie der im Speicher abgelegte Wert zu behandeln ist. Beispiel:
zahl; //Führt zur Fehlermeldung: Nicht deklariert!
Zusammen mit der Definition ist die Deklaration erst komplett. Eine Definition weist den Compiler an, einer Variablen einen Speicherbereich zuzuteilen. Dieser Speicherbereich wird über den Variablennamen angesprochen. Beispiel:
int zahl; oder int x, y, z;
Durch eine Initialisierung teilen Sie dem Compiler mit, dass eine bereits bekannte Variable einen Anfangswert zugewiesen bekommt, der sich im Ablauf des Programms ändern kann. Jede Initialisierung erfordert eine Definition, die wiederum eine Deklaration voraussetzt. Beispiel:
int x=1, y=2, z=x+y; //Auch die folgende Schreibweise ist möglich int x=1; int y=2; int z=x+y
Geltungsbereich von Variablen
Im Gegensatz zu einem C-Programm wo die Definition einer Variablen nur am Blockanfang erlaubt ist, darf in einem C++ Programm eine Variable überall definiert werden. Sie gilt dann für den Bereich des gesamten Blocks und der darin verschachtelten Blöcke. In verschiedenen Blöcken können sogar Variablen mit dem gleichen Namen verwendet werden. Dazu folgendes Beispiel:
{ int x = 10; // Die Variable x hat hier den Inhalt 10 { int x = 6; // Hier hat x den Inhalt 6 { int x = 12; // Hier hat x den Inhalt 12 } //Hier hat x wieder den Inhalt 6 } // Hier hat x wieder den Inhalt 10 }
Lokale und globale Variablen
Die innere Variable wird in C++ lokale Variable genannt. In ihrem Geltungsbereich überdeckt sie den Inhalt die außen liegenden Variablen. Die außen liegende Variable existiert weiter, jedoch aufgrund der Namensgleichheit kann jedoch nicht darauf zugegriffen werden. Sobald das Programm den inneren Block verlässt, wird die äußere Variable wieder sichtbar. Alle Operationen, die mit der lokalen Variablen durchgeführt wurden, haben keine Auswirkung auf die äußere Variable.
Variablen, die außerhalb eines Blocks definiert werden, erhalten automatisch den Gültigkeitsbereich „global“. Sie sind in allen Funktionen gültig. In den meisten Fällen werden globale Variablen deshalb noch vor der Hauptfunktion main ( ) definiert. Sofern Sie keine eigene Initialisierung vornehmen, wird eine globale Variable in C++ vom Compiler mit Null initialisiert. Der Inhalt von lokalen Variablen ist dagegen nicht Null.
Lokale und globale Variablen spielen auch im Bereich der Funktionen eine große Rolle, deshalb wird uns dieses Thema dort noch einmal beschäftigen.
Dieser Artikel ist Teil unseres kostenlosen Workshops “C++ Programmieren lernen” – Geeignet für Einsteiger und Fortgeschrittene. Machen auch Sie mit und lernen Sie in 50 Artikeln, wie Sie Programme selbst schreiben!
Artikelbild: Fotolia / bramgino