3.3    Initialisierung und Zuweisung von Werten

Nachdem Sie eine Variable definiert haben, besitzt diese noch keinen festen Wert. (Ausnahmen, die noch behandelt werden, sind globale Variablen, die im gesamten Programm gelten, sowie mit static ausgezeichnete Variablen.) Aber wenn die Variable noch keinen festen Wert hat, was steht dann in ihrer Speicheradresse? Meistens steht dort ein zufälliger Wert, der sich einfach vorher schon darin befunden hat (genauer gesagt, ein undefinierter Wert).

Einen Wert müssen Sie der Variablen erst noch zuweisen. Dies können Sie beispielsweise mit dem Zuweisungsoperator (=) erledigen:

int ivar;          // Definition
ivar = 12345; // Zuweisung

Oder Sie verwenden eine Eingabefunktion wie etwa scanf(), nachdem Sie das entsprechende Kapitel gelesen haben. Sie können aber auch gleich bei der Definition der Variablen einen Initial- bzw. Anfangswert zuweisen. Dieser Vorgang wird als Initialisierung bezeichnet. Im folgenden Beispiel wird einer Variablen mit dem Bezeichner ivar vom Datentyp int direkt bei der Definition der Wert 12345 zugewiesen:

int ivar = 12345;   // Initialisierung 

Eine Initialisierung findet somit ausschließlich bei der Definition einer Variablen statt, wohingegen eine Zuweisung jederzeit und auch mehrmals notiert werden kann.

[»]  Variablen sofort mit einem Wert initialisieren

Damit Sie nicht versehentlich mit einer nicht initialisierten Variablen arbeiten, was zu undefinierten Ergebnissen führen kann, sollten Sie es sich zur Gewohnheit machen, Variablen schon bei der Definition mit einem Anfangswert zu initialisieren, zum Beispiel so:

int ivar = 0; // ivar mit 0 initialisiert 

Wenn Ihr Compiler hier meckert, z. B. mit der Meldung Variable ivar is not used, dann nutzen Sie einen älteren C99-Compiler und können nicht Initialisierung und Definition in einer einzigen Zeile erledigen. In diesem Fall müssen Sie zwei getrennte Zeilen verwenden:

int ivar;
ivar=0;