Static è una parola chiave utilizzata nel linguaggio di programmazione C. Può essere utilizzato sia con variabili che con funzioni, ovvero possiamo dichiarare anche una variabile statica e una funzione statica. Una variabile ordinaria è limitata all'ambito in cui è definita, mentre l'ambito della variabile statica è esteso a tutto il programma.
La parola chiave statica può essere utilizzata nelle seguenti situazioni:
Quando una variabile globale viene dichiarata con una parola chiave statica, è nota come variabile globale statica. È dichiarato nella parte superiore del programma e la sua visibilità è in tutto il programma.
Quando una funzione viene dichiarata con una parola chiave statica nota come funzione statica. La sua durata è per tutto il programma.
Quando una variabile locale viene dichiarata con una parola chiave statica, è nota come variabile locale statica. La memoria di una variabile locale statica è valida in tutto il programma, ma l'ambito di visibilità di una variabile è lo stesso delle variabili locali automatiche. Tuttavia, quando la funzione modifica la variabile locale statica durante la prima chiamata di funzione, questo valore modificato sarà disponibile anche per la successiva chiamata di funzione.
Quando le variabili membro vengono dichiarate con una parola chiave statica in una classe, sono note come variabili membro statiche. Possono accedervi da tutte le istanze di una classe, non da un'istanza specifica.
La funzione membro di una classe dichiarata con una parola chiave statica è nota come metodo statico. È accessibile da tutte le istanze di una classe, non da un'istanza specifica.
Capiamo attraverso un esempio.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
Nel codice precedente viene chiamata la funzione func(). In func(), la variabile count viene aggiornata. Non appena la funzione completa la sua esecuzione, la memoria della variabile count verrà rimossa. Se non vogliamo rimuovere il conteggio dalla memoria, dobbiamo utilizzare la variabile count come statica. Se dichiariamo la variabile come statica, la variabile non verrà rimossa dalla memoria anche quando la funzione completa la sua esecuzione.
Produzione
1 1
Variabile statica
Una variabile statica è una variabile che mantiene il suo valore tra le varie chiamate di funzione.
Sintassi
La sintassi di una variabile statica è la seguente:
Java ottiene la data corrente
static data_type variable_name;
Consideriamo un semplice esempio di variabile statica.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
Nel codice precedente, abbiamo dichiarato la variabile count come statica. Quando viene chiamata func(), il valore di count viene aggiornato a 1 e durante la successiva chiamata di funzione, il valore della variabile count diventa 2. Pertanto, possiamo dire che il valore della variabile statica persiste all'interno della chiamata di funzione .
Produzione
1 2
Funzione statica
Poiché sappiamo che le funzioni non statiche sono globali per impostazione predefinita, significa che è possibile accedere alla funzione anche all'esterno del file, ma se dichiariamo la funzione come statica, ciò limita l'ambito della funzione. È possibile accedere alla funzione statica solo all'interno di un file.
La funzione statica sarebbe simile a:
static void func() { printf('Hello javaTpoint'); }
Differenze b/n variabile statica e globale
Le variabili globali sono le variabili dichiarate all'esterno della funzione. Queste variabili globali esistono all'inizio del programma e il loro ambito rimane fino alla fine del programma. È possibile accedervi anche al di fuori del programma.
Le variabili statiche sono limitate al file sorgente in cui sono definite, ovvero non sono accessibili dagli altri file sorgente.
Sia le variabili statiche che quelle globali hanno un'inizializzazione statica. Qui, l'inizializzazione statica significa che se non assegniamo alcun valore alla variabile, per impostazione predefinita alla variabile verrà assegnato il valore 0.
Differenze tra variabile locale statica e variabile globale statica
Variabile globale statica
javaxor
Se la variabile dichiarata con una parola chiave statica esterna alla funzione, è nota come variabile globale statica. È accessibile durante tutto il programma.
Variabile locale statica
La variabile con una parola chiave statica viene dichiarata all'interno di una funzione nota come variabile locale statica. L'ambito della variabile locale statica sarà lo stesso delle variabili locali automatiche, ma la sua memoria sarà disponibile durante l'esecuzione del programma. Quando la funzione modifica il valore della variabile locale statica durante una chiamata di funzione, rimarrà lo stesso anche durante la successiva chiamata di funzione.
Proprietà di una variabile statica
Di seguito sono riportate le proprietà di una variabile statica:
- La memoria di una variabile statica viene allocata all'interno di una variabile statica.
- La sua memoria è disponibile in tutto il programma, ma l'ambito rimarrà lo stesso delle variabili locali automatiche. Suo
- Il valore persisterà tra le varie chiamate di funzione.
- Se non assegniamo alcun valore alla variabile, il valore predefinito sarà 0.
- Non è possibile accedere a una variabile statica globale dall'esterno del programma, mentre è possibile accedere a una variabile globale da altri file sorgente.