Heim >Backend-Entwicklung >C++ >Wo werden statische Variablen in C/C++ gespeichert?
Statische Variablen sind Variablen, die während der Ausführung des Programms im Speicher verbleiben, d. h. ihr Lebenszyklus erstreckt sich über die gesamte Laufzeit des Programms. Dies unterscheidet sich von automatischen Variablen, die nur während der Ausführung der Funktion im Speicher verbleiben und bei Beendigung der Funktion zerstört werden.
Statische Variablen werden im Datensegment des Speichers gespeichert. Das Datensegment ist Teil des virtuellen Adressraums des Programms.
Alle statischen Variablen, die nicht explizit initialisiert oder auf Null initialisiert werden, werden im nicht initialisierten Datensegment (auch als nicht initialisiertes Datensegment bezeichnet) gespeichert. BSS-Segment). Im Gegensatz dazu werden initialisierte statische Variablen im initialisierten Datensegment gespeichert.
Das Beispiel ist wie folgt:
static int x = 5; static int y; The static variable x is stored in the initialized data segment and the static variable y is stored in the BSS segment.
Das Programm, das statische C-Sprachvariablen demonstriert, lautet wie folgt: das obige Programm.
#include<stdio.h> int func(){ static int i = 4 ; i++; return i; } int main(){ printf("%d\n", func()); printf("%d\n", func()); printf("%d\n", func()); printf("%d\n", func()); printf("%d\n", func()); printf("%d\n", func()); return 0; }
In der Funktion main() wird die Funktion func() sechsmal aufgerufen und gibt den Wert von i print zurück. Da es sich bei i um eine statische Variable handelt, bleibt sie im Speicher und stellt einen konsistenten Wert bereit, während das Programm ausgeführt wird. Ein Codeausschnitt, der dies zeigt, finden Sie unten -
5 6 7 8 9 10
Das obige ist der detaillierte Inhalt vonWo werden statische Variablen in C/C++ gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!