logo

Statisch in C

Static ist ein Schlüsselwort, das in der Programmiersprache C verwendet wird. Es kann sowohl mit Variablen als auch mit Funktionen verwendet werden, d. h. wir können sowohl eine statische Variable als auch eine statische Funktion deklarieren. Eine gewöhnliche Variable ist auf den Bereich beschränkt, in dem sie definiert ist, während der Gültigkeitsbereich der statischen Variablen das gesamte Programm umfasst.

Das statische Schlüsselwort kann in den folgenden Situationen verwendet werden:

    Statische globale Variable
    Wenn eine globale Variable mit einem statischen Schlüsselwort deklariert wird, wird sie als statische globale Variable bezeichnet. Es wird oben im Programm deklariert und ist im gesamten Programm sichtbar.Statische Funktion
    Wenn eine Funktion mit einem statischen Schlüsselwort deklariert wird, wird dies als statische Funktion bezeichnet. Seine Lebensdauer erstreckt sich über das gesamte Programm.Statische lokale Variable
    Wenn eine lokale Variable mit einem statischen Schlüsselwort deklariert wird, wird sie als statische lokale Variable bezeichnet. Der Speicher einer statischen lokalen Variablen ist im gesamten Programm gültig, der Sichtbarkeitsbereich einer Variablen ist jedoch derselbe wie bei automatischen lokalen Variablen. Wenn die Funktion jedoch während des ersten Funktionsaufrufs die statische lokale Variable ändert, steht dieser geänderte Wert auch für den nächsten Funktionsaufruf zur Verfügung.Statische Mitgliedsvariablen
    Wenn die Mitgliedsvariablen mit einem statischen Schlüsselwort in einer Klasse deklariert werden, spricht man von statischen Mitgliedsvariablen. Auf sie kann von allen Instanzen einer Klasse zugegriffen werden, nicht von einer bestimmten Instanz.Statische Methode
    Die Mitgliedsfunktion einer Klasse, die mit einem statischen Schlüsselwort deklariert wird, wird als statische Methode bezeichnet. Es ist für alle Instanzen einer Klasse zugänglich, nicht für eine bestimmte Instanz.

Lassen Sie es uns anhand eines Beispiels verstehen.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; } 

Im obigen Code wird die Funktion func() aufgerufen. In func() wird die Zählvariable aktualisiert. Sobald die Funktion ihre Ausführung abgeschlossen hat, wird der Speicher der Zählvariablen entfernt. Wenn wir die Zählung nicht aus dem Speicher entfernen möchten, müssen wir die Zählvariable als statische Variable verwenden. Wenn wir die Variable als statisch deklarieren, wird die Variable nicht aus dem Speicher entfernt, selbst wenn die Funktion ihre Ausführung abschließt.

Ausgabe

Scanner in Java
 1 1 

Statische Variable

Eine statische Variable ist eine Variable, die ihren Wert über die verschiedenen Funktionsaufrufe hinweg beibehält.

Syntax

Die Syntax einer statischen Variablen ist unten angegeben:

 static data_type variable_name; 

Schauen wir uns ein einfaches Beispiel einer statischen Variablen an.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

Im obigen Code haben wir die Zählvariable als statisch deklariert. Wenn func() aufgerufen wird, wird der Wert von count auf 1 aktualisiert, und beim nächsten Funktionsaufruf wird der Wert der Variable count zu 2. Daher können wir sagen, dass der Wert der statischen Variablen innerhalb des Funktionsaufrufs bestehen bleibt .

Beispiel für einen Benutzernamen

Ausgabe

 1 2 

Statische Funktion

Da wir wissen, dass nicht statische Funktionen standardmäßig global sind, bedeutet dies, dass auf die Funktion auch außerhalb der Datei zugegriffen werden kann. Wenn wir die Funktion jedoch als statisch deklarieren, schränkt dies den Funktionsumfang ein. Auf die statische Funktion kann nur innerhalb einer Datei zugegriffen werden.

Die statische Funktion würde so aussehen:

 static void func() { printf('Hello javaTpoint'); } 

Unterschiede zwischen statischer und globaler Variable

Globale Variablen sind die Variablen, die außerhalb der Funktion deklariert werden. Diese globalen Variablen existieren zu Beginn des Programms und ihr Gültigkeitsbereich bleibt bis zum Ende des Programms bestehen. Der Zugriff ist auch außerhalb des Programms möglich.

Statische Variablen sind auf die Quelldatei beschränkt, in der sie definiert sind, d. h. die anderen Quelldateien können nicht auf sie zugreifen.

Sowohl die statischen als auch die globalen Variablen verfügen über eine statische Initialisierung. Statische Initialisierung bedeutet hier, dass der Variablen standardmäßig der Wert 0 zugewiesen wird, wenn wir der Variablen keinen Wert zuweisen.

np bedeuten

Unterschiede zwischen statischer lokaler und statischer globaler Variable

Statische globale Variable

Wenn die Variable mit einem statischen Schlüsselwort außerhalb der Funktion deklariert wird, wird sie als statische globale Variable bezeichnet. Es ist während des gesamten Programms zugänglich.

Statische lokale Variable

Die Variable mit einem statischen Schlüsselwort, die innerhalb einer Funktion deklariert wird, wird als statische lokale Variable bezeichnet. Der Umfang der statischen lokalen Variablen ist derselbe wie der der automatischen lokalen Variablen, ihr Speicher steht jedoch während der gesamten Programmausführung zur Verfügung. Wenn die Funktion den Wert der statischen lokalen Variablen während eines Funktionsaufrufs ändert, bleibt dieser auch beim nächsten Funktionsaufruf gleich.

Haufensortierung

Eigenschaften einer statischen Variablen

Im Folgenden sind die Eigenschaften einer statischen Variablen aufgeführt:

  • Der Speicher einer statischen Variablen wird innerhalb einer statischen Variablen zugewiesen.
  • Sein Speicher steht im gesamten Programm zur Verfügung, der Gültigkeitsbereich bleibt jedoch derselbe wie bei den automatischen lokalen Variablen. Es ist
  • Der Wert bleibt über die verschiedenen Funktionsaufrufe hinweg bestehen.
  • Wenn wir der Variablen keinen Wert zuweisen, ist der Standardwert 0.
  • Auf eine globale statische Variable kann außerhalb des Programms nicht zugegriffen werden, während andere Quelldateien auf eine globale Variable zugreifen können.