Beste Antwort
global & lokal: bezieht sich auf den Umfang, dh wo verwendet werden kann
statisch: bezieht sich auf Zeit und Volatilität, dh wie lange verwendet werden kann
Die statische Variable
im C & C ++ – Programm wird nur einmal definiert (zugewiesener Speicher & Anfangswert Null), selbst die Programmsteuerung führt die Deklarationsanweisung erneut aus. Wert und Lebensdauer der statischen Variablen bleiben bis zum Ende des Programms erhalten, können jedoch innerhalb des Gültigkeitsbereichs verwendet werden.
void staticTest(){
static int i;
printf("\%d\n",i);
i++;
}
void main(){
staticTest();
staticTest();
staticTest();
}
Ausgabe:
0
1
2
Im obigen Beispiel wird die Verwendung lokaler statischer Variablen demonstriert.
globale statische: Sie können eine statische Variable im globalen Bereich deklarieren. Sie ist fast identisch mit anderen globalen Variablen, außer dass der Anfangswert Null ist, wenn Sie ihr keinen Wert zuweisen.
Antwort
Lokale statische Aufladung:
- Der Standardwert ist Null.
- Wird im Datenabschnitt gespeichert (bss oder initialisiert) des Speichers
- Umfang oder Sichtbarkeit liegt innerhalb des Blocks oder einer Funktion.
- Die Lebensdauer der lokalen statischen Variablen beginnt und endet nur mit dem Programm.
Global static:
- Wenn eine globale Variable statisch ist, befindet sich der Bereich oder die Sichtbarkeit nur in dieser Datei, selbst wenn extern in einer anderen Datei verwendet wird, funktioniert dies nicht . Es gibt einen Verknüpfungsfehler.
Beispiel 1:
static int a=20;
void xyz()
{
printf("\%d, ", a);
a = 100;
}
int main()
{
printf("\%d, ", a);
{
static int a = 10;
printf("\%d, \n", a);
xyz();
}
printf("\%d", a);
}
// Output is 20, 10, 20, 100