Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen lokaler und globaler Variable

Wie bereits erwähnt, ist eine Variable ein Name, der an einen Speicherort vergeben wird, und er muss vor seiner Verwendung deklariert werden. In C werden alle Variablen zu Beginn des Programms deklariert. In C ++ können Variablen jederzeit deklariert werden, bevor sie in den Anweisungen verwendet werden.

Variablen werden weiter in die Variablen "local" und "global" unterteilt. Dies ist das Hauptthema unserer Diskussion. Hier besteht der Hauptunterschied zwischen einer lokalen und einer globalen Variablen darin, dass eine lokale Variable innerhalb eines Funktionsbausteins deklariert wird, während die globale Variable außerhalb der Funktionen im Programm deklariert wird.

Untersuchen wir einige Unterschiede zwischen einer lokalen und einer globalen Variablen zusammen mit einem Vergleichsdiagramm.

Vergleichstabelle:

VergleichsgrundlageLokale VariableGlobale Variable
ErklärungVariablen werden innerhalb einer Funktion deklariert.Variablen werden außerhalb einer Funktion deklariert.
UmfangInnerhalb einer Funktion, in der sie deklariert sind.Im gesamten Programm.
ZugriffZugriff nur auf die Anweisungen innerhalb einer Funktion, in der sie deklariert sind.Zugriff durch eine beliebige Anweisung im gesamten Programm.
LebenWird erstellt, wenn der Funktionsblock betreten und beim Beenden zerstört wird.Bleiben Sie für die gesamte Zeit, in der Ihr Programm ausgeführt wird, bestehen.
LagerLokale Variablen werden auf dem Stack gespeichert, sofern nicht anders angegeben.Gespeichert an einem festen Ort, der von einem Compiler festgelegt wurde.

Definition der lokalen Variablen

Eine lokale Variable wird immer innerhalb eines Funktionsbausteins deklariert. In C wird eine lokale Variable am Anfang eines Codeblocks deklariert. In C ++ können sie vor ihrer Verwendung an einer beliebigen Stelle im Codeblock deklariert werden. Auf lokale Variablen kann nur von den Anweisungen zugegriffen werden, die in eine Funktion geschrieben werden, in der die lokale Variable deklariert ist. Sie sind so sicher, dass sie von keiner anderen Funktion desselben Programms abgerufen werden können.

Die lokale Variable ist vorhanden, bis der Block der Funktion ausgeführt wird, und wird dadurch zerstört, nachdem die Ausführung den Block verlassen hat. Lokale Variablen verlieren ihren Inhalt, sobald die Ausführung den Block verlassen hat, in dem sie deklariert wurden.

Der Grund dafür ist, dass die lokalen Variablen im Stapel gespeichert werden, sofern nicht deren spezieller Speicher angegeben wird. Der Stapel ist von Natur aus dynamisch, und die Änderung des Speicherorts führt dazu, dass lokale Variablen ihren Wert nicht behalten, sobald der Block einer Funktion vorhanden ist.

Hinweis:
Es gibt jedoch eine Möglichkeit, den Wert einer lokalen Variablen mithilfe des Modifizierers 'static' beizubehalten.

Definition der globalen Variablen

Eine globale Variable wird außerhalb aller in einem Programm vorhandenen Funktionen deklariert. Im Gegensatz zu lokalen Variablen kann auf die globale Variable von jeder in einem Programm vorhandenen Funktion zugegriffen werden. Globale Variablen sind nicht sehr zuverlässig, da ihr Wert von jeder im Programm vorhandenen Funktion geändert werden kann.

Globale Variablen bleiben bestehen, bis das gesamte Programm vollständig ausgeführt wird. Globale Variablen behalten ihre Werte, bis das Programm ausgeführt wird. Der Grund ist, dass sie in einem festen Speicherbereich gespeichert werden, der vom Compiler festgelegt wird.

Eine globale Variable ist in Situationen hilfreich, in denen mehrere Funktionen auf dieselben Daten zugreifen. Die Verwendung einer großen Anzahl globaler Variablen kann problematisch sein, da der Wert einer globalen Variablen möglicherweise ungewollt geändert wird.

Hauptunterschied zwischen lokaler und globaler Variable.

  1. Lokale Variablen werden als "lokal" bezeichnet, da sie nur den Anweisungen bekannt sind, die in einer Funktion geschrieben sind, innerhalb derer sie deklariert sind und keiner anderen Funktion außerhalb dieses Funktionsblocks bekannt sind. Im Falle einer globalen Variablen sind sie jeder in einem Programm vorhandenen Funktion bekannt; daher werden sie als "global" bezeichnet.
  2. Globale Variablen behalten ihren Wert, bis sich das Programm in der Ausführungsphase befindet, da sie an einem festen Ort gespeichert werden, der vom Compiler festgelegt wird. Lokale Variablen werden im Stack gespeichert. Daher behalten sie ihren Wert nicht bei, da 'stack' von Natur aus dynamisch ist. Der Compiler kann jedoch durch Verwendung des Modifikators 'static' angewiesen werden, seinen Wert beizubehalten.
  3. Wenn eine globale und eine lokale Variable mit demselben Namen deklariert werden, beziehen sich alle Anweisungen eines Codeblocks, in dem die lokale Variable deklariert ist, nur auf eine lokale Variable und wirken sich nicht auf eine globale Variable aus.
  4. Eine lokale Variable wird zerstört, wenn die Steuerung des Programms den Block verlässt, in dem die lokale Variable deklariert ist. Eine globale Variable wird jedoch zerstört, wenn das gesamte Programm beendet wird.

Fazit:

Die lokalen und globalen Variablen sind beim Schreiben des Programms gleichermaßen erforderlich. Das Deklarieren einer großen Anzahl globaler Variablen kann jedoch in einem großen Programm problematisch sein, da dies zu unerwünschten Änderungen an einer globalen Variablen führen kann. und es würde schwer werden, zu ermitteln, welcher Teil eines Programms diese Änderung vorgenommen hat. Daher sollte vermieden werden, unnötige globale Variablen zu deklarieren.

Top