Variable Scope in C ++ Programmierung

Eine Variable in C ++ sollte einen Speichertyp abhängig davon, wo und wie sie zugeordnet werden definiert. Variablen, die innerhalb einer Funktion definiert wie nLocalVariable nicht vorhanden sind, bis die Steuerung durch die Erklärung geht. In Ergänzung, nLocalVariable nur ist definiert innerhalb fn () - die Variable hört auf zu existieren, wenn die Steuerung verlässt die fn () Funktion.

int nGlobalVariable-Leere fn () {int nLocalVariable-static int nStaticVariable = 1-nStaticVariable = 2-}

Zum Vergleich: die Variable nGlobalVariable erstellt wird, wenn die Programmausführung beginnt und existiert, solange das Programm läuft. Alle Funktionen haben Zugriff auf nGlobalVariable die ganze Zeit.

nLocalVariable hat lokalen Bereich, und nGlobalVariable hat globale Reichweite. Das Schlüsselwort statisch kann verwendet werden, um eine Art von mishling zu schaffen - etwas zwischen einem globalen und lokalen Variablen. Die statische Variable nStaticVariable wird erstellt, wenn die Ausführung der Deklaration zum ersten Mal erreicht, dass die Funktion fn () wird genannt.

nicht wie nLocalVariable, aber, nStaticVariable nicht zerstört wird, wenn die Programmausführung von der Funktion zurückgibt. Stattdessen behält es seinen Wert von einem Aufruf zum nächsten.

In diesem Beispiel nStaticVariable wird auf 1 das erste Mal initialisiert, dass fn () wird genannt. Die Funktion ändert seinen Wert auf 2. nStaticVariable behält den Wert 2 auf jedem nachfolgenden Aufruf - es ist nicht neu initialisiert, sobald es erstellt wurde. Die Initialisierung Teil der Erklärung wird bei jeder späteren Zeit ignoriert, dass fn () wird nach dem ersten Mal aufgerufen.

Jedoch ist der Umfang der nStaticVariable noch vor Ort ist an die Funktion. Code außerhalb von fn () hat keinen Zugang zu nStaticVariable.

Globale Variablen sind nützlich für die Werte halten, die Sie alle Funktionen auf Zugang möchten. Statische Variablen sind sehr nützlich für die Zähler - zum Beispiel, wenn Sie wissen wollen, wie oft eine Funktion aufgerufen wird. Allerdings sind die meisten Variablen sind von der lokalen Sorte 'plain ol.

Menü