static type dati nome variabile
Variabili locali statiche
Quando una variabile in una funzione è statica, la variabile conserva il suo valore tra le chiamate della funzione.
//Esempio 1.C
Nell'esempio 1.C, abbiamo due funzioni: fun1 () E fun2 (). In fun1 (), Dichiariamo una variabile (conta) e inizializziamo su 0. Quindi, incrediamo la variabile di conteggio e restituiamo il valore risultante. Usando principale(), Noi chiamiamo fun1 () due volte e ogni volta, viene restituito un valore di 1 perché la variabile di conteggio viene cancellata quando la chiamata a fun1 () è completato. In fun2 () Abbiamo dichiarato la variabile di conteggio come una variabile statica. Pertanto, il suo valore viene preservato. Usando principale(), Noi chiamiamo fun2 () Due volte: la prima volta, viene restituito un valore di 1 e la seconda volta viene restituito un valore di 2.
Variabili globali statiche
Una variabile globale statica si comporta allo stesso modo di altre variabili globali, ma non è possibile accedere da un altro programma C.
Funzioni statiche
In C, le funzioni sono globali per impostazione predefinita. Tuttavia, se dichiariamo una funzione statica, la funzione è locale e non può essere accessibile da un altro programma C.
Inizializzazione delle variabili statiche
Se una variabile statica non viene inizializzata esplicitamente, viene inizializzata come 0.
// Esempio2.C
Nell'esempio2.C, abbiamo dichiarato una variabile statica i che non è inizializzata. Tuttavia, poiché la variabile è statica, viene automaticamente inizializzata su 0.
È importante notare che una variabile statica deve essere inizializzata da un letterale costante; Non possiamo utilizzare il valore di restituzione di una funzione per inizializzare una variabile statica.
// Esempio3.C
Nell'esempio3.C, cerchiamo di inizializzare una variabile statica utilizzando il valore di ritorno di fun1 (). Tuttavia, come puoi vedere, viene restituito un errore quando viene compilato il codice.
Riepilogo
La vita di una variabile statica e la vita del programma sono uguali.
Se una variabile statica non viene inizializzata, assumerà un valore predefinito di 0.
Né una variabile statica globale né una funzione statica sono accessibili da un programma diverso da quello in cui è stato definito.