logo

Differenza tra variabile locale e variabile globale

Le variabili in qualsiasi linguaggio di programmazione hanno un ruolo cruciale. Le variabili sono classificate in variabili globali e variabili locali in base al loro ambito. La differenza principale tra le variabili globali e locali è che è possibile accedere alle variabili globali a livello globale nell'intero programma, mentre è possibile accedere alle variabili locali solo all'interno della funzione o del blocco in cui sono definite. In questo argomento, capiremo innanzitutto quali sono le variabili e l'ambito, insieme alle variabili locali, alle variabili globali e quindi alle differenze tra entrambe le variabili.

Variabile locale vs variabile globale

Cos'è una variabile?

Una variabile è un nome dato a una posizione di memoria per memorizzare valori in un programma per computer. Viene utilizzato per memorizzare informazioni a cui è possibile fare riferimento e manipolare in un programma.

gigabyte contro megabyte

Possiamo scegliere qualsiasi nome per la variabile, ma deve seguire la semantica della programmazione. Come può essere , a, b, x, y, z, sub, div, totale, avg, ecc .

Diciamo che ci sono due valori, 10 e 20, che vogliamo memorizzare e utilizzare nel nostro programma. Per questo, dobbiamo utilizzare una variabile e eseguiremo i passaggi seguenti:

  • Per prima cosa creeremo o dichiareremo una variabile con un nome adatto.
  • Assegnare tali valori alle variabili per memorizzarli.
  • Una volta memorizzati questi valori, possiamo utilizzare queste variabili con il loro nome nel nostro programma.
Variabile locale vs variabile globale

Come possiamo vedere nell'immagine sopra, ci sono due slot di memoria, 001 e 002, e abbiamo dato nomi a queste posizioni come A e B. A ne contiene 10 e B ne contiene 20.

Diversi linguaggi di programmazione hanno modi diversi di dichiarare la variabile. Ad esempio, nel linguaggio C, possiamo dichiarare la variabile nel modo seguente:

Sintassi: (sintassi della dichiarazione delle variabili in linguaggio C)

 datatype v1, v2, v3,....; 

Esempio:

 #include void main(){ int a; int b; int sum; } 

Ambito della variabile

Ciascuna variabile è definita e può essere utilizzata nel suo ambito e determina in quale programma questa variabile è disponibile per l'uso. L'ambito indica la durata di quella variabile. Significa che è possibile accedere o vedere la variabile solo all'interno del suo ambito.

L'ambito delle variabili può essere definito con la loro dichiarazione e le variabili vengono dichiarate principalmente in due modi:

    Variabile globale:Al di fuori di tutte le funzioniVariabile locale:All'interno di un blocco funzione:

Cos'è una variabile globale?

  • Le variabili globali sono quelle variabili dichiarate all'esterno di tutte le funzioni o blocchi e a cui è possibile accedere globalmente in un programma.
  • È possibile accedervi da qualsiasi funzione presente nel programma.
  • Una volta dichiarata una variabile globale, il suo valore può essere variato come utilizzato con funzioni diverse.
  • La durata della variabile globale esiste fino all'esecuzione del programma. Queste variabili vengono archiviate in posizioni di memoria fisse fornite dal compilatore e non vengono pulite automaticamente.
  • Le variabili globali vengono utilizzate principalmente nella programmazione e sono utili nei casi in cui tutte le funzioni devono accedere agli stessi dati.

Esempio:

 #include int a=50, b=40; void main() { printf('a = %d and b=%d',a,b); } 

Nell'esempio precedente, aeb sono le variabili globali.

Vantaggi della variabile globale

  • Le variabili globali sono accessibili da tutte le funzioni presenti nel programma.
  • È richiesta una sola dichiarazione.
  • Molto utile se tutte le funzioni accedono agli stessi dati.

Svantaggi della variabile globale

  • Il valore di una variabile globale può essere modificato accidentalmente poiché può essere utilizzato da qualsiasi funzione nel programma.
  • Se utilizziamo un gran numero di variabili globali, c'è un'alta probabilità che si generino errori nel programma.

Cos'è una variabile locale?

    Le variabili dichiarate all'interno o all'interno di un blocco funzione sono note come variabili locali.
  • È possibile accedere a queste variabili solo all'interno della funzione in cui sono dichiarate.
  • La durata della variabile locale rientra solo nella sua funzione, il che significa che la variabile esiste fino all'esecuzione della funzione. Una volta completata l'esecuzione della funzione, le variabili locali vengono distrutte e non esistono più al di fuori della funzione.
  • Il motivo dell'ambito limitato delle variabili locali è che le variabili locali vengono archiviate nello stack, che è di natura dinamica e ripulisce automaticamente i dati archiviati al suo interno.
  • Ma rendendo la variabile statica con la parola chiave 'static', possiamo mantenere il valore della variabile locale.

Esempio:

 #include void main() { int x=50, y=40; printf('x = %d and y=%d',x, y); } 

Nell'esempio sopra, abbiamo dichiarato xey due variabili all'interno della funzione principale. Si tratta quindi di variabili locali.

Vantaggi della variabile locale

  • Lo stesso nome di una variabile locale può essere utilizzato in funzioni diverse poiché viene riconosciuto solo dalla funzione in cui è dichiarato.
  • Le variabili locali utilizzano la memoria solo per il tempo limitato in cui viene eseguita la funzione; dopodiché la stessa posizione di memoria può essere riutilizzata.

Svantaggi delle variabili locali

  • L'ambito della variabile locale è limitato solo alla sua funzione e non può essere utilizzato da altre funzioni.
  • La condivisione dei dati da parte della variabile locale non è consentita.

Grafico di confronto tra variabile globale e variabile locale

Variabile globale Variabile locale
Le variabili globali vengono dichiarate all'esterno di tutti i blocchi funzione. Le variabili locali vengono dichiarate all'interno di un blocco funzione.
L'ambito rimane per tutto il programma. L'ambito è limitato e rimane all'interno della funzione solo in cui sono dichiarati.
Qualsiasi modifica nella variabile globale influisce sull'intero programma, ovunque venga utilizzato. Qualsiasi modifica nella variabile locale non influisce sulle altre funzioni del programma.
Una variabile globale esiste nel programma per tutto il tempo in cui il programma viene eseguito. Una variabile locale viene creata quando viene eseguita la funzione e, una volta terminata l'esecuzione, la variabile viene distrutta.
È possibile accedervi in ​​tutto il programma da tutte le funzioni presenti nel programma. È possibile accedervi solo dalle istruzioni di funzione in cui è dichiarato e non dalle altre funzioni.
Se la variabile globale non è inizializzata, per impostazione predefinita accetta zero. Se la variabile locale non è inizializzata, per impostazione predefinita assume il valore Garbage.
Le variabili globali vengono memorizzate nel segmento dati della memoria. Le variabili locali vengono archiviate in uno stack in memoria.
Non possiamo dichiarare molte variabili con lo stesso nome. Possiamo dichiarare varie variabili con lo stesso nome ma in altre funzioni.

Esempi per comprendere le differenze tra variabile locale e globale

Ora comprendiamo esempi in diversi linguaggi di programmazione per comprendere meglio la differenza tra variabili locali e globali.

Locale vs globale in C

Esempio 1:

 #include // Global variables int a; int b; int Add() { return a + b; } int Mul() { int c=10; //Local Variable int d=20; ////Local Variable return c*d; } void main() { int Ans1, Ans2, c=30;// Local variable a = 50; b = 70; Ans1 = Add(); Ans2= Mul(); printf('The addition result is: %d
',Ans1); printf('The Multiplication result is: %d
',Ans2); printf('%d
', c); } 

Produzione:

 The addition result is: 120 The Multiplication result is: 200 30 

Come possiamo vedere nel programma sopra, abbiamo preso UN E B variabili globali a cui si accede in diverse funzioni come Add() e main(). Mentre ci sono anche variabili locali come c, d, Ans1 e Ans2, a cui accedono solo quelle funzioni in cui sono dichiarate.

Se proviamo a utilizzare le variabili c e d al di fuori della funzione Mul(), verranno utilizzate come nuove variabili. Come abbiamo dimostrato prendendo c anche nella funzione main(), viene trattato come una nuova variabile.

Locale vs. Globale in Python

Esempio 1:

 v1 = 'Hey, I am Global Variable!, I can be used everywhere in the program.' #globalvariable def func1(): v2='Hey, I am Local Variable!, I can be used within this block only in the program.' #localvariable print(v2) func1() #calling func1 def func2(): print(v1) func2() #callin func2 

Produzione:

 Hey, I am a Local Variable!, I can be used within this block only in the program. Hey, I am Global Variable!, I can be used everywhere in the program. 

Nel programma sopra abbiamo preso una variabile globale v1 e una variabile locale v2. Poiché v1 è globale, è possibile accedervi facilmente in qualsiasi funzione e v2 è locale; viene utilizzato solo all'interno della sua funzione dichiarata. Ma se proviamo a utilizzare v1 in func1, verrà restituito un errore. Vediamo l'esempio qui sotto:

Esempio-2

 v1 = 'Hey, I am Global Variable!, I can be used everywhere in the program.' #globalvariable def func1(): v2='Hey, I am Local Variable!, I can be used within this block only in the program.' #localvariable print(v2) print(v1) func1() #calling func1 def func2(): print(v1) print(v2) func2() #callin func2 

Se proviamo ad accedere a v1, è possibile accedervi facilmente in fun1 e func2. Ma se proviamo ad accedere a v2 al di fuori della sua funzione, cioè in func2, verrà restituito un errore di runtime. Otterremo l'output seguente dopo aver eseguito il codice sopra:

Errore di esecuzione:

 NameError: global name 'v2' is not defined 

Produzione:

 Hey, I am Local Variable!, I can be used within this block only in the program. Hey, I am Global Variable!, I can be used everywhere in the program. Hey, I am Global Variable!, I can be used everywhere in the program. 

Locale vs. Variabile globale in Java

In Java non esiste il concetto di variabili globali; poiché Java è un linguaggio di programmazione orientato agli oggetti, tutto fa parte della classe. Ma se vogliamo rendere una variabile accessibile a livello globale, possiamo renderla statica utilizzando a statico Parola chiave.

 class Demo { // static variable static int a = 10; // non-static or local variable int b = 20; } public class Main { public static void main(String[] args) { Demo obj = new Demo(); // accessing the non-static variable System.out.println('Value of non-static variable is: ' + (obj.b)); // accessing the static variable System.out.println('Value of static variable is:' + (Demo.a)); } } 

Produzione:

 Value of non-static variable is: 20 Value of static variable is:10 

Nel programma sopra abbiamo utilizzato una variabile locale o variabile non statica e una variabile statica. È possibile accedere alla variabile locale utilizzando l'oggetto della classe Demo, mentre è possibile accedere alla variabile statica utilizzando il nome della classe.