Heim > Backend-Entwicklung > C++ > Wo werden statische Variablen in C/C++ gespeichert?

Wo werden statische Variablen in C/C++ gespeichert?

王林
Freigeben: 2023-09-15 21:09:03
nach vorne
1322 Leute haben es durchsucht

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.
Nach dem Login kopieren

Das Programm, das statische C-Sprachvariablen demonstriert, lautet wie folgt: das obige Programm.

In der Funktion func() ist i eine statische Variable, die auf 4 initialisiert wird. Daher wird es im Initialisierungsdatensegment gespeichert. Dann wird i inkrementiert und sein Wert zurückgegeben. Der Codeausschnitt, der dies zeigt, lautet wie folgt:

#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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage