Programmiersprache C:
Variablen 2 - lokale und globale Variablen



Wie wir schon aus dem ersten Kapitel über Variablen wissen, sind Variablen Träger von Werten. Sie müssen vor der ersten Benutzung deklariert werden und sind immer von einem bestimmten Typ. 


Zusätzlich zu dieser Weisheit gilt in C folgendes:

  • Variablen, die innerhalb einer Funktion deklariert werden, gelten nur innerhalb dieser Funktion.
    Man bezeichnet sie als lokale Variablen.

  • Variablen, die außerhalb von Funktionen deklariert werden, gelten überall im Programm.
    Man bezeichnet sie als globale Variablen.

Damit Du Dir das besser merken kannst:

  • global kommt von Globus (lat. für Erdkugel), hier also im Sinne von: überall.

  • lokal kommt vom lateinischen Locus (dt. Ort) - der Ort ist hier die Funktion.



Bsp 1: Variable a gilt nur in der Funktion "meineFunktion". Sie ist eine lokale Variable.

#include <stdio.h>

void meineFunktion (void) {
    int a = 3;
    printf("%i \n", a);
}

int main (void) {
    meineFunktion(); //Funktionsaufruf
    return 0;
}


Bsp 2: Die lokale Variable a soll fälschlicherweise in der main-Funktion benutzt werden, wo sie unbekannt ist.

#include <stdio.h>

void meineFunktion (void) {
    int a = 3;
    printf("%i", a);
}

int main (void) {
    meineFunktion(); //Funktionsaufruf
    printf("%i", a);// hier ist der Fehler
    return 0;
}



Bsp 3: Variable b gilt im gesamten Programm. Sie ist eine globale Variable.

#include <stdio.h>

int b = 4;

void meineFunktion (void) {
    printf("%i \n", b);
}

int main (void) {
    printf("%i \n", b);
    meineFunktion(); //Funktionsaufruf
    return 0;
}



Bsp 4: zwei Variablen mit Namen c werden lokal verwendet. Sie stören sich nicht gegenseitig.

#include <stdio.h>

void meineFunktion(void){
    int c;
    c = 3;
    printf("%i \n", c);
}

int main (void)
    int c;
    c = 7;
    meineFunktion(); //Funktionsaufruf
    printf("%i \n", c); // hier wird eine 7 ausgedruckt, keine 3
    return 0;
}


Auch wenn Dir das recht unübersichtlich erscheint! Die Unterscheidung von globalen und lokalen Variablen hat für Dich den Vorteil, daß Du Dir keine Gedanken darüber machen mußt, welche Variablen von anderen Programmierern benutzt wurden, deren Funktionen Du in Deinem Programm benutzt.

weiter