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

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

王林
王林nach vorne
2023-09-15 21:09:031319Durchsuche

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.

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;
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen