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.
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.
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.
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.
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 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 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