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.
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,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; }
The value of auto variable : 28 The sun of auto variable & integer variable : 36
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:
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; }
The value of auto variable : 28 The value of extern variables x and b : 32,8 The value of modified extern variable x : 15
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,
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; }
The value of auto variable : -28 The value of static variable b : 8 The sum of static variable and auto variable : -20
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:
Online-Demo
#include <stdio.h> int main() { register char x = 'S'; 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; }
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!