Concetti Chiave
- Una variabile è identificata da un nome e ha un tipo che determina i valori che può assumere e gli operatori utilizzabili.
- La visibilità (scope) di una variabile definisce la parte del programma in cui può essere utilizzata.
- Il tempo di vita di una variabile è il periodo in cui l'associazione tra il suo nome e l'indirizzo di memoria è valida.
- Le variabili possono avere una durata di memorizzazione statica o automatica, influenzando la loro persistenza nel programma.
- Il qualificatore static per variabili locali permette di mantenere il valore tra chiamate successive, inizializzandola solo alla prima chiamata.
Variabili
Una variabile è caratterizzata da:
- nome: identificativo
- tipo: specifica classe di valori assumibili dalla variabile che permettono di utilizzare determinati operatori
- visibilità (o scope): parte di programma in cui la variabile è nota e può essere quindi usata
- tempo di vita:tempo in cui resta valida l’associazione tra identificativo e indirizzo fisico di memoria
- specifica tori di classe di memorizzazione: parole chiave che permettono di cambiare la classe di memorizzazione o la visibilità delle variabili e funzioni.
- qualificatori di tipo: parole chiave che specificano proprietà sul tipo di dato
Tempo di vita di una variabile
Ogni variabile ha un tempo di vita, ovvero il lasso di tempo in cui esiste un’area di memoria ad essa associata.
Ci sono due classi di storage duration (tempo di vita):
- static: il tempo di vita si estende per tutta la durata del programma
- automatic: legato al campo di visibilità della variabile
Se static viene usato con variabili locali, la variabile resta in vita per tutta la durata del programma, quindi la variabile preserva il proprio contenuto anche quando il blocco a cui appartiene è terminato.
È utile per preservare il valore di una variabile locale tra chiamate successive a funzione: la variabile viene inizializzata solo alla prima chiamata.