Deklarieren und Initialisieren von Variablen
Kurz: Deklarieren heißt, einer Variablen Namen und Typ zu geben, damit das Programm Speicher für sie reserviert. Initialisieren heißt, ihr den ersten Wert zuzuweisen. Beides lässt sich zusammen in einer Zeile erledigen.
Genauer: Der Computer muss vorher wissen, wie viel Speicher eine Variable braucht und was sie enthalten darf. Das passiert bei der Deklaration. Danach muss sie einen gültigen Anfangswert bekommen, sonst enthält sie Zufallsreste oder null.
Im Detail
Deklaration, Initialisierung, Zuweisung:
int alter; // Deklaration: Typ und Name
alter = 17; // Initialisierung: erster Wert
int groesse = 180; // beides in einer Zeile
alter = 18; // spätere Zuweisung (Wert ändern)| Schritt | Bedeutung | Wirkung |
|---|---|---|
| Deklarieren | Name und Typ bekanntmachen | Speicher wird reserviert |
| Initialisieren | Ersten Wert zuweisen | Variable ist benutzbar |
| Zuweisen | Wert später ändern | Alter Wert wird überschrieben |
In verschiedenen Sprachen:
| Sprache | Beispiel |
|---|---|
| Java, C, C# | int x = 5; (Typ angeben) |
| Python | x = 5 (Typ wird erkannt, keine Deklaration nötig) |
| JavaScript | let x = 5;, const PI = 3.14;, früher var |
| TypeScript | let x: number = 5; |
| Kotlin | val x = 5 (unveränderlich), var y = 3 |
| Go | x := 5 oder var x int = 5 |
Wichtige Regeln:
- Lokale Variablen in Java müssen vor dem Lesen einen Wert haben (Compilerfehler sonst). Attribute bekommen Standardwerte (0,
false,null). - C/C++: Nicht initialisierte lokale Variablen enthalten Müll, ein häufiger Fehler und Sicherheitsrisiko. Immer initialisieren.
const/final: Wert darf nur einmal gesetzt werden.- Sichtbarkeit (Scope): Variable gilt nur im Block, in dem sie deklariert ist.
- Namen: Sprechend (
anzahlKundenstatta), in Java camelCase, in Python snake_case. - Mehrere in einer Zeile:
int a = 1, b = 2;(nur wenn übersichtlich). - Deklarieren von Funktionen: In C trennt man Deklaration (Prototyp) und Definition (Rumpf).
Fehler: Variable verwenden, bevor sie deklariert wurde („cannot find symbol”, „is not defined”). Doppelt deklarieren im selben Scope.
Siehe auch: initialisieren, Multiple Variables (Mehrere Variablen deklarieren), Variablen