logo

Estàtica en C

Estàtica és una paraula clau utilitzada en el llenguatge de programació C. Es pot utilitzar tant amb variables com amb funcions, és a dir, també podem declarar una variable estàtica i una funció estàtica. Una variable ordinària es limita a l'àmbit en què es defineix, mentre que l'abast de la variable estàtica és a tot el programa.

La paraula clau estàtica es pot utilitzar en les situacions següents:

    Variable global estàtica
    Quan es declara una variable global amb una paraula clau estàtica, es coneix com a variable global estàtica. Es declara a la part superior del programa, i la seva visibilitat és a tot el programa.Funció estàtica
    Quan es declara una funció amb una paraula clau estàtica coneguda com a funció estàtica. La seva vida útil és durant tot el programa.Variable local estàtica
    Quan es declara una variable local amb una paraula clau estàtica, es coneix com a variable local estàtica. La memòria d'una variable local estàtica és vàlida a tot el programa, però l'abast de visibilitat d'una variable és el mateix que les variables locals automàtiques. Tanmateix, quan la funció modifica la variable local estàtica durant la primera crida de funció, aquest valor modificat també estarà disponible per a la següent trucada de funció.Variables membres estàtiques
    Quan les variables membres es declaren amb una paraula clau estàtica en una classe, es coneix com a variables membres estàtiques. S'hi poden accedir totes les instàncies d'una classe, no amb una instància específica.Mètode estàtic
    La funció membre d'una classe declarada amb una paraula clau estàtica es coneix com a mètode estàtic. És accessible per totes les instàncies d'una classe, no amb una instància específica.

Entenem-ho a través d'un exemple.

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

Al codi anterior, s'anomena la funció func(). A func(), la variable de recompte s'actualitza. Tan bon punt la funció finalitzi la seva execució, la memòria de la variable de recompte s'eliminarà. Si no volem eliminar el recompte de la memòria, hem d'utilitzar la variable recompte com a estàtica. Si declarem la variable com a estàtica, aleshores la variable no s'eliminarà de la memòria fins i tot quan la funció completi la seva execució.

sql selecció múltiple de taula

Sortida

 1 1 

Variable estàtica

Una variable estàtica és una variable que manté el seu valor a través de les diferents trucades de funció.

Sintaxi

La sintaxi d'una variable estàtica es mostra a continuació:

 static data_type variable_name; 

Vegem un exemple senzill de variable estàtica.

arbre binari en ordre de recorregut
 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

Al codi anterior, hem declarat la variable de recompte com a estàtica. Quan es crida a func(), el valor de count s'actualitza a 1, i durant la següent crida de funció, el valor de la variable count es converteix en 2. Per tant, podem dir que el valor de la variable estàtica persisteix dins de la crida de funció. .

Sortida

 1 2 

Funció estàtica

Com sabem que les funcions no estàtiques són globals per defecte, vol dir que també es pot accedir a la funció fora del fitxer, però si declarem la funció com estàtica, aleshores limita l'abast de la funció. Només es pot accedir a la funció estàtica dins d'un fitxer.

La funció estàtica es veuria així:

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

Diferències b/n variable estàtica i global

Les variables globals són les variables que es declaren fora de la funció. Aquestes variables globals existeixen al principi del programa i el seu abast es manté fins al final del programa. També es pot accedir fora del programa.

índex de java

Les variables estàtiques es limiten al fitxer font en què es defineixen, és a dir, no són accessibles pels altres fitxers font.

Tant les variables estàtiques com les globals tenen inicialització estàtica. Aquí, la inicialització estàtica significa que si no assignem cap valor a la variable, per defecte, s'assignarà un valor 0 a la variable.

Diferències b/n variable local estàtica i variable global estàtica

Variable global estàtica

Si la variable es declara amb una paraula clau estàtica fora de la funció, llavors es coneix com a variable global estàtica. És accessible durant tot el programa.

Variable local estàtica

La variable amb una paraula clau estàtica es declara dins d'una funció es coneix com a variable local estàtica. L'abast de la variable local estàtica serà el mateix que les variables locals automàtiques, però la seva memòria estarà disponible durant tota l'execució del programa. Quan la funció modifica el valor de la variable local estàtica durant una trucada de funció, es mantindrà igual fins i tot durant la següent trucada de funció.

Propietats d'una variable estàtica

Les propietats d'una variable estàtica són les següents:

  • La memòria d'una variable estàtica s'assigna dins d'una variable estàtica.
  • La seva memòria està disponible a tot el programa, però l'abast seguirà sent el mateix que les variables locals automàtiques. El seu
  • el valor es mantindrà a les diferents trucades de funció.
  • Si no assignem cap valor a la variable, el valor per defecte serà 0.
  • No es pot accedir a una variable estàtica global fora del programa, mentre que altres fitxers font poden accedir a una variable global.