Heim  >  Artikel  >  Backend-Entwicklung  >  Speicherklassen in C

Speicherklassen in C

PHPz
PHPznach vorne
2023-09-11 18:33:03877Durchsuche

Speicherklassen in C

In der C-Sprache werden die Eigenschaften von Variablen und Funktionen durch Speicherklassen beschrieben, z. B. die Sichtbarkeit und der Umfang von Variablen oder Funktionen.

In der C-Sprache gibt es vier Arten von Speicherklassen: automatische Variablen, externe Variablen, statische Variablen und Registervariablen.

auto

Die Speicherklasse Auto ist die Standardspeicherklasse für alle lokalen Variablen. Es wird beim Aufruf der Funktion erstellt. Wenn die Funktionsausführung abgeschlossen ist, wird die Variable automatisch zerstört.

Sie werden auch lokale Variablen genannt, da sie lokale Variablen der Funktion sind. Standardmäßig weist der Compiler ihnen Müllwerte zu.

Scope - Automatische Variablen sind lokale Variablen des Funktionsblocks.

Standardwert - Der Müllwert ist der Standardinitialisierungswert.

Lebensdauer - Die Lebensdauer einer Auto-Variable wird durch den Block begrenzt, in dem sie definiert ist.

Dies ist ein Beispiel für eine automatische Variable in der C-Sprache,

Beispiel

Live-Demonstration

#include <stdio.h>
int main() {
   auto int a = 28;
   int b = 8;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The sun of auto variable & integer variable : %d", (a+b));
   return 0;
}

Ausgabe

The value of auto variable : 28
The sun of auto variable & integer variable : 36

extern

Externe Variablen werden auch globale Variablen genannt. Diese Variablen werden außerhalb der Funktion definiert. Diese Variablen sind während der gesamten Funktionsausführung global verfügbar. Der Wert globaler Variablen kann durch Funktionen geändert werden.

Geltungsbereich – Sie sind an keine Funktion gebunden. Sie sind überall im Programm, also global.

Standardwert – Globale Variablen haben einen Standardinitialisierungswert von Null.

Lebenszyklus - > Bis zum Ende der Programmausführung.

Hier ist ein Beispiel für eine externe Variable in der C-Sprache:

Beispiel

Live-Demonstration

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   auto int a = 28;
   extern int b;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The value of extern variables x and b : %d,%d</p><p>",x,b);
   x = 15;
   printf("The value of modified extern variable x : %d</p><p>",x);
   return 0;
}

Ausgabe

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

statisch

Statische Variablen werden nur einmal initialisiert. Der Compiler behält diese Variable bis zum Ende des Programms. Statische Variablen können innerhalb oder außerhalb einer Funktion definiert werden.

Scope – Sie sind lokale Variablen für den Block.

Standard - > Der Standardinitialisierungswert ist Null.

Lebenszyklus - Bis zum Ende der Programmausführung.

Hier ist ein Beispiel für eine statische Variable in C,

Beispiel

Live-Demonstration

#include <stdio.h>
int main() {
   auto int a = -28;
   static int b = 8;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The value of static variable b : %d</p><p>",b);
   if(a!=0)
   printf("The sum of static variable and auto variable : %d</p><p>",(b+a));
   return 0;
}

Ausgabe

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

register

Registervariablen weisen den Compiler an, die Variable in einem CPU-Register statt im Speicher zu speichern. Häufig verwendete Variablen werden in Registern gespeichert, wo sie schneller zugänglich sind. Wir können niemals die Adressen dieser Variablen erhalten.

Geltungsbereich - Sie sind auf die Funktion beschränkt.

Standardwert - Der Standardinitialisierungswert ist Müll.

Lebensdauer - Bevor die Ausführung des Codeblocks endet, der ihn definiert.

Hier ist ein Beispiel für eine Registervariable in C:

Beispiel

Online-Demo

#include <stdio.h>
int main() {
   register char x = &#39;S&#39;;
   register int a = 10;
   auto int b = 8;
   printf("The value of register variable b : %c</p><p>",x);
   printf("The sum of auto and register variable : %d",(a+b));
   return 0;
}

Ausgabe

The value of register variable b : S
The sum of auto and register variable : 18

Das obige ist der detaillierte Inhalt vonSpeicherklassen in C. 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