Differenza tra variabile locale e globale

Differenze chiave tra variabile locale e variabile globale

  • La variabile locale viene dichiarata all'interno di una funzione, mentre la variabile globale viene 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, una 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 vengono archiviate nello stack, mentre la variabile globale viene archiviata in una posizione fissa decisa dal compilatore.
  • Il passaggio dei parametri รจ richiesto per le variabili locali, mentre non รจ necessario per una variabile globale

Differenza tra variabile locale e globale

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 inoltre l'intervallo di valori che devono essere archiviati all'interno di quella memoria e la natura delle operazioni che possono essere applicate a quella variabile.

Ambito delle variabili

L'ambito 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 "foo". 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 nel linguaggio di programmazione:

  • 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

Variabile locale

Variabile locale รจ definito 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 finchรฉ il blocco della funzione รจ in esecuzione. Successivamente, 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

A Variabile globale nel programma รจ una variabile definita all'esterno della subroutine o della funzione. Ha una portata globale, il che significa che mantiene il suo valore per tutta la durata del programma. Pertanto, รจ possibile accedervi in โ€‹โ€‹tutto il programma da qualsiasi funzione definita all'interno del programma, a meno che non sia oscurata.

Esempio:

int a =4;
int b=5;
public int add(){
return a+b;
}

Qui, "a" e "b" sono variabili globali.

Variabile locale e variabile globale

Ecco alcune differenze fondamentali tra le variabili locali e globali.

Parametro Local Global
Obbiettivo Viene dichiarato all'interno di una funzione. Viene dichiarato all'esterno della funzione.
Valore Se non รจ inizializzato, viene archiviato un valore spazzatura Se non รจ inizializzato, lo zero viene memorizzato come predefinito.
Per sempre. 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.
La condivisione dei dati La condivisione dei dati non รจ possibile poichรฉ รจ possibile accedere ai dati della variabile locale solo da una funzione. La condivisione dei dati รจ possibile poichรฉ piรน funzioni possono accedere alla stessa variabile globale.
Scheda Sintetica 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 poichรฉ รจ 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 tramite qualsiasi istruzione nel programma.
Memoria Viene archiviato nello stack se non diversamente specificato. รˆ 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 di un programma
  • Devi solo dichiarare una variabile globale una volta al di fuori dei moduli.
  • รˆ idealmente utilizzato per conservare le "costanti" poichรฉ ti aiuta a mantenere la consistenza.
  • Una variabile globale รจ utile quando piรน funzioni accedono agli stessi dati.

Vantaggi dell'utilizzo delle variabili locali

  • L'uso di variabili locali offre la garanzia che i valori delle variabili rimarranno intatti durante l'esecuzione dell'attivitร 
  • Se piรน task modificano una singola variabile che รจ in esecuzione contemporaneamente, il risultato potrebbe essere imprevedibile. Ma dichiararla come variabile locale risolve questo problema, poichรฉ ogni task creerร  la propria istanza della variabile locale.
  • รˆ possibile assegnare alle variabili locali lo stesso nome in funzioni diverse perchรฉ vengono riconosciute solo dalla funzione in cui sono dichiarate.
  • Le variabili locali vengono cancellate non appena una funzione termina e liberano lo spazio di memoria che occupa.

Svantaggi dell'utilizzo delle variabili globali

  • Troppe variabili dichiarate come globali, rimangono in memoria fino al completamento dell'esecuzione del programma. Ciรฒ puรฒ causare un problema di memoria insufficiente.
  • I dati possono essere modificati da qualsiasi funzione. Qualsiasi istruzione scritta nel programma puรฒ modificare il valore della variabile globale. Ciรฒ potrebbe dare risultati imprevedibili in ambienti multitasking.
  • 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 delle variabili locali

  • Il processo di debug di una variabile locale รจ piuttosto complicato.
  • I dati comuni devono essere trasmessi ripetutamente poichรฉ la condivisione dei dati non รจ possibile tra i moduli.
  • Hanno una portata molto limitata.

Cosa รจ piรน utile?

La variabile locale e globale sono ugualmente importanti durante la scrittura di un programma in qualsiasi lingua. Tuttavia, un gran numero di variabili globali puรฒ occupare una memoria enorme. รˆ diventato difficile identificare un cambiamento indesiderato delle variabili globali. Pertanto รจ consigliabile evitare di dichiarare variabili globali indesiderate.

Riassumi questo post con: