Suche
Suche Menü

Statische Variablen

Nachdem wir die globalen Variablen kennengelernt haben, sehen wir nun, wie wir die gleiche Problemstellung mit statischen Variablen lösen können. Deklarieren wir innerhalb eines Blocks „{…}“ Variablen, so haben wir gelernt, dass diese nach dem Durchlauf des Blocks nicht mehr existieren. Kennzeichnen wir Variablen allerdings mit static, werden diese statisch und behalten ihre Stellung. Dies funktioniert, weil eine statische Variable einen festen Bereich im Speicher verwendet und diesen eben beibehält.

In dem nächsten Beispiel wollen wir das bekannte Beispiel mit der Zählvariable mit static lösen. Dies ist auch eine sauberere Lösung, da die Variable zum Zählen innerhalb der Funktion zaehlen() deklariert und somit thematisch zugeordnet wird.

In der Funktion zaehlen() deklarieren wir zuerst die statische Zählvariable counter und initialisieren diese mit 0. Danach geben wir den Wert um eins erhöht zurück. In der Hauptfunktion rufen wir lediglich ein paar mal die zaehlen()-Funktion auf und geben den Rückgabewert aus.

#include<stdio.h>

int zaehlen() {
	static int counter = 0;
	return ++counter;
}

int main() {
	printf("Zaehler: %d\n", zaehlen());
	printf("Zaehler: %d\n", zaehlen());	
	printf("Zaehler: %d\n", zaehlen());
	return 0;
}

Zaehler: 1
Zaehler: 2
Zaehler: 3