Unterschied zwischen lokaler und globaler Variable
Hauptunterschiede zwischen lokaler Variable und globaler Variable
- Die lokale Variable wird innerhalb einer Funktion deklariert, während die globale Variable außerhalb der Funktion deklariert wird.
- Lokale Variablen werden erstellt, wenn die Ausführung der Funktion begonnen hat, und gehen verloren, wenn die Funktion beendet wird. Andererseits wird eine globale Variable erstellt, wenn die Ausführung beginnt, und geht verloren, wenn das Programm endet.
- Die lokale Variable ermöglicht keine Datenfreigabe, wohingegen die globale Variable die Datenfreigabe ermöglicht.
- Lokale Variablen werden auf dem Stapel gespeichert, während die globale Variable an einem festen, vom Compiler festgelegten Ort gespeichert wird.
- Die Übergabe von Parametern ist für lokale Variablen erforderlich, während dies für eine globale Variable nicht erforderlich ist
Was ist eine Variable?
Eine Variable ist ein Name, der einem Speicherbereich zugewiesen wird, den das Programm bearbeiten kann. Ein Variablentyp bestimmt die Größe und das Layout des Variablenspeichers.
Es bestimmt auch den Wertebereich, der in diesem Speicher gespeichert werden muss, und die Art der Operationen, die auf diese Variable angewendet werden können.
Gültigkeitsbereich von Variablen
Der Gültigkeitsbereich der Variablen ist einfach die Lebensdauer einer Variablen. Es handelt sich um einen Codeblock, unter dem eine Variable anwendbar oder aktiv ist. Zum Beispiel:
function foo(){ var x; }
Sie deklarieren eine Variable „x“ innerhalb einer Funktion „foo“. Der Gültigkeitsbereich dieser Variablen bleibt innerhalb dieser Funktion und kann nicht außerhalb dieser Funktion verwendet werden.
Es gibt drei Orte, an denen Variablen in der Programmiersprache Variable deklariert werden können:
- Innerhalb einer Funktion oder eines Blocks: Lokale Variablen
- Außerhalb aller Funktionen: Globale Variablen
- Bei der Definition von Funktionsparametern: Formale Parameter
Lokale Variable
Lokale Variable ist als Variablentyp definiert, der innerhalb von Programmierblöcken oder Unterprogrammen deklariert wird. Er kann nur innerhalb des Unterprogramms oder Codeblocks verwendet werden, in dem er deklariert ist. Die lokale Variable existiert, bis der Funktionsblock ausgeführt wird. Danach wird sie automatisch zerstört.
Beispiel einer lokalen Variablen
public int add(){ int a =4; int b=5; return a+b; }
Hier sind „a“ und „b“ lokale Variablen
Globale Variable
A Globale Variable im Programm ist eine Variable, die außerhalb des Unterprogramms oder der Funktion definiert ist. Es hat eine globale Reichweite, was bedeutet, dass es seinen Wert während der gesamten Lebensdauer des Programms behält. Daher kann im gesamten Programm von jeder im Programm definierten Funktion darauf zugegriffen werden, es sei denn, sie ist geschattet.
Beispiel:
int a =4; int b=5; public int add(){ return a+b; }
Hier sind „a“ und „b“ globale Variablen.
Lokale Variable vs. globale Variablen
Hier sind einige grundlegende Unterschiede zwischen lokalen und globalen Variablen.
Parameter | Local | Global |
---|---|---|
Geltungsbereich | Es wird innerhalb einer Funktion deklariert. | Es wird außerhalb der Funktion deklariert. |
Wert | Wenn es nicht initialisiert ist, wird ein Müllwert gespeichert | Wenn es nicht initialisiert ist, wird Null als Standard gespeichert. |
Lebenslang | Es wird erstellt, wenn die Funktion mit der Ausführung beginnt, und geht verloren, wenn die Funktion beendet wird. | Es wird erstellt, bevor die globale Ausführung des Programms beginnt, und geht verloren, wenn das Programm beendet wird. |
Datenübertragung | Eine gemeinsame Nutzung von Daten ist nicht möglich, da nur eine Funktion auf die Daten der lokalen Variablen zugreifen kann. | Die gemeinsame Nutzung von Daten ist möglich, da mehrere Funktionen auf dieselbe globale Variable zugreifen können. |
Parameter | Die Übergabe von Parametern ist erforderlich, damit lokale Variablen auf den Wert in einer anderen Funktion zugreifen können | Die Übergabe von Parametern ist für eine globale Variable nicht erforderlich, da sie im gesamten Programm sichtbar ist |
Änderung des Variablenwerts | Wenn der Wert der lokalen Variablen in einer Funktion geändert wird, sind die Änderungen in einer anderen Funktion nicht sichtbar. | Wenn der Wert der globalen Variablen in einer Funktion geändert wird, sind die Änderungen im Rest des Programms sichtbar. |
Zugegriffen von | Auf lokale Variablen kann mit Hilfe von Anweisungen innerhalb einer Funktion zugegriffen werden, in der sie deklariert werden. | Sie können mit jeder Anweisung im Programm auf globale Variablen zugreifen. |
Speicher | Es wird auf dem Stapel gespeichert, sofern nicht anders angegeben. | Es wird an einem festen Ort gespeichert, der vom Compiler festgelegt wird. |
Vorteile der Verwendung globaler Variablen
- Sie können von allen Funktionen oder Modulen eines Programms aus auf die globale Variable zugreifen
- Sie müssen die globale Variable nur einmal außerhalb der Module deklarieren.
- Es wird ideal zum Speichern von „Konstanten“ verwendet, da es Ihnen hilft, die Konsistenz zu erhalten.
- Eine globale Variable ist nützlich, wenn mehrere Funktionen auf dieselben Daten zugreifen.
Vorteile der Verwendung lokaler Variablen
- Die Verwendung lokaler Variablen bietet die Garantie, dass die Werte der Variablen während der Ausführung der Aufgabe erhalten bleiben
- Wenn mehrere Tasks gleichzeitig eine einzelne Variable ändern, kann das Ergebnis unvorhersehbar sein. Dieses Problem lässt sich jedoch lösen, indem man sie als lokale Variable deklariert, da jeder Task seine eigene Instanz der lokalen Variable erstellt.
- Sie können lokalen Variablen in verschiedenen Funktionen denselben Namen geben, da sie nur von der Funktion erkannt werden, in der sie deklariert sind.
- Lokale Variablen werden gelöscht, sobald eine Funktion beendet ist und geben den von ihr belegten Speicherplatz frei.
Nachteile der Verwendung globaler Variablen
- Wenn zu viele Variablen als global deklariert sind, bleiben sie im Speicher, bis die Programmausführung abgeschlossen ist. Dies kann zu einem Problem mit nicht genügend Arbeitsspeicher führen.
- Daten können durch jede Funktion geändert werden. Jede im Programm geschriebene Anweisung kann den Wert der globalen Variablen ändern. Dies kann in Multitasking-Umgebungen zu unvorhersehbaren Ergebnissen führen.
- Wenn globale Variablen aufgrund von Code-Refactoring nicht mehr unterstützt werden, müssen Sie alle Module ändern, in denen sie aufgerufen werden.
Nachteile der Verwendung lokaler Variablen
- Der Debugging-Prozess einer lokalen Variablen ist ziemlich knifflig.
- Gemeinsame Daten müssen wiederholt übergeben werden, da ein Datenaustausch zwischen Modulen nicht möglich ist.
- Ihr Umfang ist sehr begrenzt.
Was ist nützlicher?
Die lokale und globale Variable sind beim Schreiben eines Programms in einer beliebigen Sprache gleichermaßen wichtig. Allerdings kann eine große Anzahl globaler Variablen einen großen Speicher belegen. Eine unerwünschte Änderung globaler Variablen ist schwer zu erkennen. Daher ist es ratsam, die Deklaration unerwünschter globaler Variablen zu vermeiden.