Unterschied zwischen lokaler und globaler Variable

Autor: Laura McKinney
Erstelldatum: 1 April 2021
Aktualisierungsdatum: 15 Kann 2024
Anonim
Video 3-4: Lokale und globale Variablen: Was sind die Unterschiede?
Video: Video 3-4: Lokale und globale Variablen: Was sind die Unterschiede?

Inhalt


Wie wir bereits besprochen haben, ist eine Variable ein Name, der einem Speicherort gegeben wird, und er muss deklariert werden, bevor er verwendet wird. In C werden alle Variablen beim Programmstart deklariert. In C ++ können Variablen zu jedem Zeitpunkt deklariert werden, bevor sie in den Anweisungen verwendet werden.

Variablen werden in "lokale" und "globale" Variablen unterteilt. Dies ist das Hauptthema unserer Diskussion. Der Hauptunterschied zwischen lokaler und globaler Variable besteht darin, dass eine lokale Variable innerhalb eines Funktionsblocks deklariert wird. Im Gegensatz dazu wird die globale Variable außerhalb der Funktionen im Programm deklariert.

Lassen Sie uns einige weitere Unterschiede zwischen einer lokalen und einer globalen Variablen zusammen mit einer Vergleichstabelle untersuchen.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Vorteile
  5. Nachteile
  6. Fazit

Vergleichstabelle:

VERGLEICHSGRUNDLAGE LOKALE VARIABLE GLOBALE VARIABLE
Erklärung Variablen werden innerhalb einer Funktion deklariert.
Variablen werden außerhalb einer Funktion deklariert.
Umfang
Innerhalb einer Funktion, in der sie deklariert sind.Während des gesamten Programms.
Wert
Nicht initialisierte lokale Variablen führen zur Speicherung des Garbage-Werts.Nicht initialisierte globale Variablen speichern standardmäßig Null.
Zugriff Zugriff nur über die Anweisungen innerhalb einer Funktion, in der sie deklariert sind. Zugriff über eine beliebige Anweisung im gesamten Programm.
DatenübertragungNicht vorgesehenErleichtert
LebenWird erstellt, wenn der Funktionsbaustein betreten und beim Beenden zerstört wird. Bleiben Sie für die gesamte Laufzeit Ihres Programms bestehen.
Lager
Lokale Variablen werden auf dem Stack gespeichert, sofern nicht anders angegeben.
Gespeichert an einem festen Ort, der von einem Compiler festgelegt wurde.
ParameterübergabeNotwendig erforderlichNicht erforderlich für globale Variablen.
Änderungen in einem VariablenwertÄnderungen, die in einer lokalen Variablen enthalten sind, wirken sich nicht auf die anderen Funktionen des Programms aus.Die in der globalen Variablen einer Funktion vorgenommenen Änderungen spiegeln die Änderungen im gesamten Programm wider.

Definition der lokalen Variablen

EIN 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 mit den Anweisungen zugegriffen werden, die in einer Funktion geschrieben sind, in der die lokalen Variablen deklariert sind. Sie sind in dem Sinne sicher, dass keine andere Funktion desselben Programms auf sie zugreifen kann.


Lokale Variablen existieren, bis der Block der Funktion ausgeführt wird, und werden dadurch zerstört, nachdem die Ausführung den Block verlassen hat. Lokale Variablen verlieren ihren Inhalt, sobald die Ausführung den Block verlässt, in dem sie deklariert sind.

Der Grund dafür ist, dass die lokalen Variablen auf dem Stapel gespeichert werden, es sei denn, ihr spezieller Speicher ist angegeben. Der Stack ist dynamischer Natur und die Änderung des Speicherorts führt dazu, dass die lokale Variable ihren Wert nicht beibehält, sobald der Block einer Funktion existiert.

Hinweis:
Es gibt jedoch eine Möglichkeit, den Wert einer lokalen Variablen mit dem Modifikator "static" beizubehalten.

Definition der globalen Variablen

EIN 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.


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

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

  1. Lokale Variablen werden als "lokal" bezeichnet, da sie nur den Anweisungen bekannt sind, die in eine Funktion geschrieben wurden, in der sie deklariert sind, und keiner anderen Funktion außerhalb dieses Funktionsblocks bekannt sind. Im Fall einer globalen Variablen sind sie jeder in einem Programm vorhandenen Funktion bekannt. Sie werden daher „global“ genannt.
  2. Globale Variablen behalten ihren Wert, bis sich das Programm in der Ausführungsphase befindet, da sie an einem vom Compiler festgelegten Ort gespeichert werden. Lokale Variablen werden auf dem Stapel gespeichert. Daher behalten sie ihren Wert nicht bei, da "stack" dynamischer Natur ist. Der Compiler kann jedoch mithilfe des Modifikators "static" angewiesen werden, ihren 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 haben keine Auswirkungen auf eine globale Variable.
  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.

Vorteile

Lokale Variable

  • Der Hauptvorteil einer lokalen Variablen besteht darin, dass die Daten nicht versehentlich geändert werden. Die Variable wird in einem Block deklariert, und dieser Codeblock verwendet die Variable und vermeidet unerwünschte Nebenwirkungen.
  • Die lokale Variable belegt nur dann für einen begrenzten Zeitraum Speicher, wenn der Block ausgeführt wird, der die Variable enthält.

Globale Variable

  • Globale Variablen sind sehr nützlich, wenn Sie mit mehreren Funktionen im Programm arbeiten, die dieselben Daten bearbeiten.
  • Änderungen, die im gesamten Programm angewendet werden mussten, wären durch die Implementierung einer globalen Variablen einfacher.
  • Wir können von überall oder über eine beliebige Funktion des Programms zugreifen.

Nachteile

Lokale Variable

  • Der Gültigkeitsbereich der lokalen Variablen ist eingeschränkt.
  • Verbietet den Datenaustausch.
  • Sie sind nicht in der Lage, die Daten zwischen den Aufrufen beizubehalten, da lokale Variablen bei jedem Ein- und Austritt aus dem Block generiert und entfernt werden. Der statische Modifikator kann jedoch verwendet werden, um die Werte beizubehalten.

Globale Variable

  • Die Verwendung einer großen Anzahl globaler Variablen kann zu Programmfehlern führen.
  • Das Hauptproblem, das es verursacht, ist das zufällige Auftreten der Änderungen aufgrund der im gesamten Programm verbreiteten globalen Variablen.
  • Dies könnte auch dazu führen, dass Code-Refactoring durchgeführt werden muss. Dies ist ein sehr umfangreicher Prozess, bei dem der gesamte Programmcode neu strukturiert wird.

Fazit:

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