Cos'è una variabile?
La variabile è un nome assegnato a un'area di archiviazione che il programma può manipolare. Un tipo di variabile determina la dimensione e il layout della memoria della variabile.
Determina anche l'intervallo di valori che devono essere memorizzati all'interno di quella memoria e la natura delle operazioni che possono essere applicate a quella variabile.
In questo tutorial imparerai
- Ambito delle variabili
- Definizione di variabile locale
- Definizione di variabile globale
- Variabili locali e variabili globali
- Vantaggi dell'utilizzo delle variabili globali
- Vantaggi dell'utilizzo di variabili locali
- Svantaggi dell'utilizzo delle variabili globali
- Svantaggi dell'utilizzo di variabili locali
- Cos'è più utile?
Ambito delle variabili
Lo scopo della variabile è semplicemente la durata di una variabile. È un blocco di codice in cui una variabile è applicabile o attiva. Per esempio:
function foo(){var x;}
Dichiari una variabile "x" all'interno di una funzione "pippo". L'ambito di quella variabile rimane all'interno di quella funzione e non può essere utilizzato al di fuori di quella funzione.
Ci sono tre posti in cui è possibile dichiarare le variabili in un linguaggio di programmazione variabile:
- All'interno di una funzione o di un blocco: variabili locali
- Al di fuori di tutte le funzioni: variabili globali
- Nella definizione dei parametri di funzione: parametri formali
DIFFERENZA CHIAVE
- La variabile locale è dichiarata all'interno di una funzione mentre la variabile globale è dichiarata all'esterno della funzione.
- Le variabili locali vengono create quando la funzione ha iniziato l'esecuzione e vengono perse quando la funzione termina, d'altra parte, la variabile globale viene creata all'avvio dell'esecuzione e viene persa quando il programma termina.
- La variabile locale non fornisce la condivisione dei dati mentre la variabile globale fornisce la condivisione dei dati.
- Le variabili locali sono memorizzate nello stack mentre le variabili globali sono memorizzate in una posizione fissa decisa dal compilatore.
- Il passaggio dei parametri è richiesto per le variabili locali mentre non è necessario per una variabile globale
Variabile locale
La variabile locale è definita come un tipo di variabile dichiarata all'interno del blocco di programmazione o delle subroutine. Può essere utilizzato solo all'interno della subroutine o del blocco di codice in cui è dichiarato. La variabile locale esiste fino a quando il blocco della funzione è in esecuzione. Dopodiché, verrà distrutto automaticamente.
Esempio di variabile locale
public int add(){int a =4;int b=5;return a+b;}
Qui, "a" e "b" sono variabili locali
Variabile globale
Una variabile globale nel programma è una variabile definita al di fuori della subroutine o della funzione. Ha una portata globale, significa che mantiene il suo valore per tutta la durata del programma. Quindi, è possibile accedervi in tutto il programma da qualsiasi funzione definita all'interno del programma, a meno che non sia oscurato.
Esempio:
int a =4;int b=5;public int add(){return a+b;}
Qui, "a" e "b" sono variabili globali.
Variabile locale vs. Variabili globali
Ecco alcune differenze fondamentali tra le variabili locali e globali.
Parametro | Locale | Globale |
---|---|---|
Scopo | È dichiarato all'interno di una funzione. | È dichiarato al di fuori della funzione. |
Valore | Se non viene inizializzato, viene memorizzato un valore di spazzatura | Se non è inizializzato, lo zero viene memorizzato come predefinito. |
Tutta la vita | Viene creato quando la funzione inizia l'esecuzione e viene perso quando le funzioni terminano. | Viene creato prima dell'inizio dell'esecuzione globale del programma e viene perso quando il programma termina. |
Condivisione dei dati | La condivisione dei dati non è possibile poiché è possibile accedere ai dati della variabile locale da una sola funzione. | La condivisione dei dati è possibile poiché più funzioni possono accedere alla stessa variabile globale. |
Parametri | Il passaggio dei parametri è necessario affinché le variabili locali accedano al valore in un'altra funzione | Il passaggio dei parametri non è necessario per una variabile globale in quanto è visibile in tutto il programma |
Modifica del valore della variabile | Quando il valore della variabile locale viene modificato in una funzione, le modifiche non sono visibili in un'altra funzione. | Quando il valore della variabile globale viene modificato in una funzione, i cambiamenti sono visibili nel resto del programma. |
Accesso da | È possibile accedere alle variabili locali con l'aiuto di istruzioni, all'interno di una funzione in cui sono dichiarate. | È possibile accedere alle variabili globali da qualsiasi istruzione nel programma. |
Archiviazione in memoria | Viene memorizzato nello stack a meno che non sia specificato. | Viene memorizzato in una posizione fissa decisa dal compilatore. |
Vantaggi dell'utilizzo delle variabili globali
- È possibile accedere alla variabile globale da tutte le funzioni o moduli in un programma
- Hai solo bisogno di dichiarare la variabile globale una volta al di fuori dei moduli.
- È idealmente utilizzato per la memorizzazione di "costanti" in quanto aiuta a mantenere la coerenza.
- Una variabile globale è utile quando più funzioni accedono agli stessi dati.
Vantaggi dell'utilizzo di variabili locali
- L'uso di variabili locali offre una garanzia che i valori delle variabili rimarranno intatti durante l'esecuzione dell'attività
- Se più attività modificano una singola variabile in esecuzione contemporaneamente, il risultato potrebbe essere imprevedibile. Ma dichiararlo come variabile locale risolve questo problema poiché ogni attività creerà la propria istanza della variabile locale.
- È possibile assegnare alle variabili locali lo stesso nome in funzioni diverse perché sono riconosciute solo dalla funzione in cui sono dichiarate.
- Le variabili locali vengono cancellate non appena una funzione è terminata e liberano lo spazio di memoria che occupa.
Svantaggi dell'utilizzo delle variabili globali
- Troppe variabili dichiarate come globali, quindi rimangono in memoria fino al completamento dell'esecuzione del programma. Ciò può causare problemi di memoria insufficiente.
- I dati possono essere modificati da qualsiasi funzione. Qualsiasi istruzione scritta nel programma può modificare il valore della variabile globale. Questo può dare risultati imprevedibili in ambienti multi-tasking.
- Se le variabili globali vengono interrotte a causa del refactoring del codice, sarà necessario modificare tutti i moduli in cui vengono chiamate.
Svantaggi dell'utilizzo di variabili locali
- Il processo di debug di una variabile locale è piuttosto complicato.
- Dati comuni necessari per passare ripetutamente poiché la condivisione dei dati non è possibile tra i moduli.
- Hanno una portata molto limitata.
Cos'è più utile?
La variabile locale e globale ugualmente importanti durante la scrittura di un programma in qualsiasi lingua. Tuttavia, un numero elevato di variabili globali può occupare un'enorme memoria. Un cambiamento indesiderato alle variabili globali è diventato difficile da identificare. Pertanto, è consigliabile evitare di dichiarare variabili globali indesiderate.