Zurück zu: C Tutorial
Nachdem Sie nun verstehen, wie Funktionen funktionieren, ist es wichtig zu lernen, wie sich Variablen innerhalb und außerhalb von Funktionen verhalten.
In C sind Variablen nur innerhalb des Bereichs zugänglich, in dem sie erstellt werden. Dies wird als Gültigkeitsbereich bezeichnet.
Lokaler Geltungsbereich
Eine innerhalb einer Funktion erstellte Variable gehört zum lokalen Gültigkeitsbereich dieser Funktion und kann nur innerhalb dieser Funktion verwendet werden:
Beispiel
void myFunction() {
// Local variable that belongs to myFunction
int x = 5;
// Print the variable x
printf("%d", x);
}
int main() {
myFunction();
return 0;
}
Eine lokale Variable kann nicht außerhalb der Funktion verwendet werden, zu der sie gehört.
Bei einem Versuch, außerhalb der Funktion darauf zuzugreifen, tritt ein Fehler auf:
Beispiel
void myFunction() {
// Local variable that belongs to myFunction
int x = 5;
}
int main() {
myFunction();
// Print the variable x in the main function
printf("%d", x);
return 0;
}
Globaler Umfang
Eine außerhalb einer Funktion erstellte Variable wird als globale Variable bezeichnet und gehört zum globalen Gültigkeitsbereich.
Globale Variablen sind in jedem Bereich verfügbar, global und lokal:
Beispiel
Eine außerhalb einer Funktion erstellte Variable ist global und kann daher von jedem verwendet werden:
// Global variable x
int x = 5;
void myFunction() {
// We can use x here
printf("%d", x);
}
int main() {
myFunction();
// We can also use x here
printf("%d", x);
return 0;
}
Variablen benennen
Wenn Sie innerhalb und außerhalb einer Funktion mit demselben Variablennamen arbeiten, behandelt C sie als zwei separate Variablen; eine, die im globalen Bereich (außerhalb der Funktion) verfügbar ist, und eine, die im lokalen Bereich (innerhalb der Funktion) verfügbar ist:
Beispiel
Die Funktion druckt das lokale x
, und anschließend druckt der Code das globale x
:
// Global variable x
int x = 5;
void myFunction() {
// Local variable with the same name as the global variable (x)
int x = 22;
printf("%d\n", x); // Refers to the local variable x
}
int main() {
myFunction();
printf("%d\n", x); // Refers to the global variable x
return 0;
}
Sie sollten jedoch vermeiden, denselben Variablennamen sowohl für globale als auch für lokale Variablen zu verwenden, da dies zu Fehlern und Verwirrung führen kann.
Generell sollten Sie mit globalen Variablen vorsichtig sein, da diese von jeder Funktion aus aufgerufen und geändert werden können:
Beispiel
Ändern Sie den Wert von x
von myFunction
:
// Global variable
int x = 5;
void myFunction() {
printf("%d\n", ++x); // Increment the value of x by 1 and print it
}
int main() {
myFunction();
printf("%d\n", x); // Print the global variable x
return 0;
}
// The value of x is now 6 (no longer 5)
Abschluss
To sum up, use local variables (with good variable names) as much as you can. This will make your code easier to maintain and better to understand. However, you may find global variables when working on existing C programs or while collaborating with others. Therefore, it is good to understand how the scope works and how to use it effectively to make sure your code is clear and functional.