Variablen

Eine Variable ist eine Adresse im Speicher. Im Gegensatz zur Mathematik oder anderen Programmiersprachen hat eine Variable in C zur Laufzeit immer einen definierten Wert.

Variablen müssen immer zum Anfang einer Funktion deklariert werden. Die Deklaration besteht aus den "Datentyp" und dem "Bezeichner". Optional kann der Wert auch direkt bei der Deklaration zugewiesen werden.

Deklaration

int a;
int b = 50; 

Beide Variablen haben den Datentyp "int" (Integer = Ganzzahl), aber nur die Variable "b" hat bereits einen Wert. Die Variablen "a" und "b" können über Ihren Bezeichner ("a" oder "b") aufgerufen werden.

Weil der Datentyp von Variablen bereits während der Kompilierung festgelegt ist, wird von einer statischen Typisierung gesprochen. Andere Sprachen wie JavaScript oder Python verwenden eine dynamische Typisierung, bei der erst zur Laufzeit der Datentyp geprüft wird.


Gültigkeitsbereich

Der Gültigkeitsbereich von Variablen bestimmt, wo Variablen gültig sind. Globale Variablen stehen vor der ersten Funktion und gelten für alle Funktionen im Programm.

globale Variable

int global = 5;
int main () {
 printf ("Die globale Variable hat den Wert: %i", global);
}

Lokale Variablen sind nur innerhalb der Funktionen gültig, in der Sie definiert wurden.

lokale Variable

int variable = 5;
int main () {
 int variable = 22;
 printf ("Die globale Variable hat den Wert: %i", variable);
}

Eine besondere Form der Variable ist die statische Variable. Lokale Variablen verlieren nach ihrer Abarbeitung zum Beispiel innerhalb von Funktionen ihre Gültigkeit. Bei jedem Funktionsaufruf wird die Variable neu initialisiert. Statische Variablen hingegen behalten Ihren Wert bis zum nächsten Funktionsaufruf.

statische Variable

void verdoppeln () {
 static int i = 1;
 printf ("Wert: %i\n", i);
 i=i*2;
}
int main (void) {
 verdoppeln();
 verdoppeln();
 verdoppeln();
 verdoppeln();
 verdoppeln();
}

Typqualifizierer

Der Typqualifizierer kann den Speichertyp einer Variable weiter definieren.

const

Mit dem Typqualifizierer "const" wird eine Konstante definiert. Konstanten werden direkt bei der Initialisierung deklariert. Der Wert kann im Programmverlauf nicht mehr geändert werden. Konstanten werden zum Programmbeginn erstellt und erhalten einen unveränderbaren Wert. Wie zum Beispiel ein Geburtsdatum.

const

const int geb = 1980;

volatile

Mit "volatile" gekennzeichnete Variablen werden vor jedem Zugriff aus dem Hauptspeicher eingelesen. Mit "volatile" gekennzeichnete Variablen können von anderen Programmen verändert werden. Ein denkbarer Einsatz wäre das Auslesen und Verarbeiten von Sensordaten über andere Programme.

volatile

volatile int vint;

restrict

Der Typqualifizierer "restrict" wird bei Zeigern verwendet. Mit dem Schlüsselwort gekennzeichnete Speicherobjekte dürfen während der Lebenszeit des Zeigers nicht verändert werden. Der Zugriff ist nur über den Zeiger möglich.


Weiter mit Ausdrücke und Operatoren