Variablen

Die folgenden 4 Aussagen erläutern die Notwendigkeit von Variablen:

Variablen sind also die Behälter, in denen das Programm Zahlen und Texte ablegt.

Eigenschaften einer Variable

SPEICHER

Die Variable benötigt zum Ablegen der Informationen immer Speicher. Der Speicher wird vom Compiler zur Verfügung gestellt. Über die Lage und Größe muss sich der Programmierer NICHT kümmern. Der Compiler ermittelt die Größe vom Datentyp und reserviert den dafür notwendigen Speicher.

NAME

Die Variable wird im Programm über einen weitgehend frei wählbaren Namen angesprochen. Dieser Name identifiziert die Variable innerhalb eines Blocks eindeutig. C++ unterscheidet sogar zwischen Groß- und Kleinschreibung!

DATENTYP

Der Datentyp einer Variablen bestimmt, welche Informationen abgelegt werden können. So kann eine Variable je nach ihrem Typ beispielsweise einen Buchstaben oder eine Zahl speichern. Der Datentyp bestimmt natürlich auch die Speichergröße, die benötigt wird. Der Typ bestimmt aber auch, welche Operationen auf die Variable angewendet werden können. So können Sie beispielsweise Zahlen durch einander dividieren. Mit Texten geht das nicht.

Variablendefinition

Das folgende Beispiel zeigt eine Variablendefinition innerhalb der Hauptfunktion main():

int main()
{
   int Gehalt;
}

Datentyp

Der Datentyp ist in diesem Fall int. Dieser Datentyp steht für ganzzahlige Zahlen.

Name

Durch ein Leerzeichen abgesetzt, beginnt der Name der Variablen. Den Namen sollten Sie immer so wählen, dass Sie auf den Inhalt schließen können. Hier lässt der Name Einkommen bereits auf die Verwendung der Variablen im Programm schließen. Verwenden Sie ruhig lange Namen. Abkürzungen ersparen zwar Tipparbeit, Sie werden aber auf lange Sicht mehr Zeit verschwenden, wenn Sie darüber nachdenken müssen, was in welcher Variable abgelegt ist. Das gilt auch dann, wenn Sie extrem langsam tippen. Noch mehr Zeit werden Sie brauchen, wenn Sie einen Fehler suchen müssen, der entstand, weil Sie zwei Variablen verwechselt haben, nur weil der Name unklar war.

Semikolon (=Strich-Punkt)

Zu guter Letzt folgt das Semikolon. Damit wird jede Anweisung abgeschlossen, auch eine Variablendefinition.

Initialisierung

Sie können Variablen gleich bei ihrer Definition mit einem Wert vorbelegen. Dazu setzen Sie hinter den Variablennamen ein Gleichheitszeichen. Das initialisiert die Variable mit dem nachfolgenden Wert.

   int Gehalt=2000;

Damit wird bei der Erstellung die Variable Gehalt auf 2000 gesetzt. Normalerweise initialisiert man einen neue Variable immer mit 0.

   int Gehalt=0;

Mehrfache Definition

Es können mehrere Variablen mit dem gleichen Datentyp hintereinander definiert werden, in dem sie durch Komma getrennt werden.

   int zahl, Gehalt=0, Freunde=1, Feinde=5;

Geltungsbereich einer Variable

Eine Variable in C++ kann je nach ihrer Definition unterschiedliche Geltungsbereiche besitzen.

Blockgrenzen

Während in C Variablendefinitionen nur am Blockanfang vor der ersten Anweisung erlaubt sind, kann in C++ eine Variable überall definiert werden.

WICHTIG: Sie gilt dann für den gesamten restlichen Bereich des aktuellen Blocks und aller darin verschachtelten Blöcke.

Es können sogar in verschachtelten Blöcken Variablen mit dem gleichen Namen verwendet werden. Dabei überdeckt die innen liegende Definition diejenige, die außerhalb des Blocks liegt. Folgendes Beispiel macht das deutlich:

int main()
{
    int a = 5;
    {
    // hier hat a den Inhalt 5
    }
    {
        int a = 3;
        // hier hat a den Inhalt 3
        {
            // a ist immer noch 3
        }
    }
    // hier ist a wieder 5
 
    return 0;
}

Lokale Variable

Die innere Variable wird als lokale Variable bezeichnet. Für ihren Geltungsbereich überdeckt sie die außen liegende Variable a. Die außen liegende Variable existiert durchaus noch, aber aufgrund der Namensgleichheit mit der lokalen Variablen kann man bis zu deren Auflösung nicht auf sie zugreifen. Sobald das Programm den Block verlässt, in dem die lokale Variable definiert ist, wird die äußere Variable wieder sichtbar. Alle Operationen auf der lokalen Variablen berühren die äußere Variable nicht.

Globale Variable

Variablen, die außerhalb jedes Blocks definiert werden, nennt man globale Variablen. Sie gelten für alle Blöcke, die nach der Definition im Quelltext auftreten, sofern darin nicht eine Variable gleichen Namens lokal definiert wird.

Konstante

Eine Konstante ist ein unveränderlicher Wert. Alle Zahlen in einem Programm sind Konstanten, da ihr Wert, im Gegensatz zu Variablen, nicht geändert werden kann. In C++ haben auch Konstanten einen Datentyp.

Deklaration einer Konstanten

Zahlenkonstanten die ohne weitere Erklärung im Programm (=Quellcode) stehen, haben keinen Dokumentationswert und können zu Verwechslungen bzw. Verwirrungen führen. Um die Lesbarkeit des Programms zu erhöhen, könnte man anstatt der Zahl eine Konstante definieren.
Nehmen Sie an, sie möchten ein Programm für die Zeiterfassung ihrer Mitarbeiter schreiben. Jeder Mitarbeiter soll jeden Tag 8 Stunden arbeiten. Anstatt die Zahl 8 zu verwenden, könnten Sie eine Konstante namens Regelarbeitszeit verwenden.
Ist diese Konstante einmal definiert so kann sie bei Programmausführung nicht mehr verändert werden.
Notwendig dafür, ist neben dem Datentyp und dem Variablennamen noch das Schlüsselwort const.

   const int Regelarbeitszeit=8;

Manchmal findet man in C++ auch noch die Form aus der Programmiersprache C.

  #define Regelarbeitszeit 8

Beispiel für Variablen und ihren Geltungsbereich

#include <iostream>			//Bibliothek für Ein- und Ausgabe
 
#define Wochentage 7		//Alte Definition einer Konstanten namens Wochentage mit dem Wert 7
 
 
int Arbeitsstunden=8; 		//globale Variable
 
int main()		//Hauptfunktion
{
    const int Arbeitstage=5;  		// Deklaration einer Konstanten namens Arbeitstage initialisiert mit 5 
    std::cout << Arbeitsstunden;  	//Ausgabe der globalen Variable Arbeitsstunden => 8
    {
       	int Arbeitsstunden=5;     	//Deklaration einer lokalen Variable namens Arbeitsstunden initialisiert mit 5 
    	std::cout << Arbeitsstunden;		//Ausgabe der lokalen Variable Arbeitsstunden => 5
    }
 
    std::cout << Arbeitsstunden; 	//Ausgabe der globalen Variable Arbeitsstunden => 8
    //Arbeitstage=4;					--> NICHT ERLAUBT, DA Arbeitstage EINE KONSTANTE IST
    std::cout << Arbeitstage;    	//Ausgabe der Konstante Arbeitstage => 5
    std::cout << Wochentage; 		//Ausgabe der Konstante Wochentage => 7
 
    return 0;
}