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.