logo

Diferença entre variável local e variável global

Variáveis ​​em qualquer linguagem de programação têm um papel crucial. As variáveis ​​são classificadas em variáveis ​​globais e variáveis ​​locais com base em seu escopo. A principal diferença entre variáveis ​​globais e locais é que as variáveis ​​globais podem ser acessadas globalmente em todo o programa, enquanto as variáveis ​​locais podem ser acessadas apenas dentro da função ou bloco em que estão definidas. Neste tópico, primeiro entenderemos o que são as variáveis ​​e o escopo, juntamente com as variáveis ​​locais, as variáveis ​​globais e depois as diferenças entre ambas as variáveis.

comando arp-a
Variável local vs variável global

O que é uma variável?

Uma variável é um nome dado a um local de memória para armazenar valores em um programa de computador. É usado para armazenar informações que podem ser referenciadas e manipuladas em um programa.

Podemos escolher qualquer nome para a variável, mas ela deve seguir a semântica de programação. Tal como pode ser , a, b, x, y, z, sub, div, total, média, etc. .

Digamos que existam dois valores, 10 e 20, que queremos armazenar e usar em nosso programa. Para isso, precisamos utilizar uma variável, e faremos os passos abaixo:

  • Primeiro, criaremos ou declararemos uma variável com um nome adequado.
  • Atribua esses valores às variáveis ​​para armazená-los.
  • Uma vez armazenados esses valores, podemos usar essas variáveis ​​​​com seus nomes em nosso programa.
Variável local vs variável global

Como podemos ver na imagem acima, existem dois slots de memória, 001 e 002, e demos nomes a esses locais como A e B. A contém 10 e B contém 20.

Diferentes linguagens de programação têm maneiras diferentes de declarar a variável. Por exemplo, na linguagem C, podemos declarar a variável da seguinte maneira:

Sintaxe: (Sintaxe de declaração de variável em linguagem C)

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

Exemplo:

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

Escopo da variável

Cada variável é definida e pode ser usada dentro de seu escopo e determina em que programa esta variável está disponível para uso. O escopo significa o tempo de vida dessa variável. Isso significa que a variável só pode ser acessada ou visível dentro de seu escopo.

O escopo das variáveis ​​pode ser definido com sua declaração, e as variáveis ​​são declaradas principalmente de duas maneiras:

    Variável global:Fora de todas as funçõesVariável local:Dentro de um bloco de função:

O que é uma variável global?

  • Variáveis ​​globais são aquelas variáveis ​​que são declaradas fora de todas as funções ou blocos e podem ser acessadas globalmente em um programa.
  • Pode ser acessado por qualquer função presente no programa.
  • Uma vez que declaramos uma variável global, seu valor pode ser variado conforme usado com diferentes funções.
  • O tempo de vida da variável global existe até a execução do programa. Essas variáveis ​​são armazenadas em locais fixos de memória fornecidos pelo compilador e não são limpas automaticamente.
  • Variáveis ​​globais são usadas principalmente em programação e úteis para casos onde todas as funções precisam acessar os mesmos dados.

Exemplo:

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

No exemplo acima, aeb são as variáveis ​​globais.

arquitetura de rede

Vantagens da variável global

  • Variáveis ​​globais podem ser acessadas por todas as funções presentes no programa.
  • É necessária apenas uma única declaração.
  • Muito útil se todas as funções acessarem os mesmos dados.

Desvantagens da variável global

  • O valor de uma variável global pode ser alterado acidentalmente, pois pode ser usado por qualquer função do programa.
  • Se usarmos um grande número de variáveis ​​globais, há uma grande chance de geração de erros no programa.

O que é uma variável local?

    Variáveis ​​declaradas dentro ou dentro de um bloco de função são conhecidas como variáveis ​​locais.
  • Essas variáveis ​​só podem ser acessadas dentro da função em que são declaradas.
  • O tempo de vida da variável local está apenas dentro de sua função, o que significa que a variável existe até que a função seja executada. Uma vez concluída a execução da função, as variáveis ​​locais são destruídas e não existem mais fora da função.
  • A razão para o escopo limitado das variáveis ​​locais é que as variáveis ​​locais são armazenadas na pilha, que é de natureza dinâmica e limpa automaticamente os dados armazenados nela.
  • Mas ao tornar a variável estática com a palavra-chave 'static', podemos reter o valor da variável local.

Exemplo:

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

No exemplo acima, declaramos xey duas variáveis ​​​​dentro da função principal. Portanto, essas são variáveis ​​locais.

Vantagens da variável local

  • O mesmo nome de uma variável local pode ser usado em diferentes funções, pois só é reconhecido pela função na qual é declarada.
  • Variáveis ​​locais usam memória apenas por um tempo limitado quando a função é executada; depois que o mesmo local de memória pode ser reutilizado.

Desvantagens das variáveis ​​locais

  • O escopo da variável local é limitado apenas à sua função e não pode ser usado por outras funções.
  • O compartilhamento de dados pela variável local não é permitido.

Gráfico Comparativo entre Variável Global e Variável Local

Variável Global Variável local
Variáveis ​​globais são declaradas fora de todos os blocos funcionais. Variáveis ​​locais são declaradas dentro de um bloco funcional.
O escopo permanece durante todo o programa. O escopo é limitado e permanece dentro da função apenas em que são declarados.
Qualquer alteração na variável global afeta todo o programa, onde quer que esteja sendo usado. Qualquer alteração na variável local não afeta outras funções do programa.
Uma variável global existe no programa durante todo o tempo em que o programa é executado. Uma variável local é criada quando a função é executada e, uma vez finalizada a execução, a variável é destruída.
Pode ser acessado em todo o programa por todas as funções presentes no programa. Ele só pode ser acessado pelas instruções de função nas quais é declarado e não pelas outras funções.
Se a variável global não for inicializada, ela assume zero por padrão. Se a variável local não for inicializada, ela assumirá o valor lixo por padrão.
Variáveis ​​globais são armazenadas no segmento de dados da memória. Variáveis ​​locais são armazenadas em uma pilha na memória.
Não podemos declarar muitas variáveis ​​com o mesmo nome. Podemos declarar diversas variáveis ​​com o mesmo nome, mas em outras funções.

Exemplos para entender as diferenças entre variáveis ​​locais e globais

Agora vamos entender exemplos em diferentes linguagens de programação para entender melhor a diferença entre variáveis ​​locais e globais.

Local vs Global em C

Exemplo 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); } 

Saída:

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

Como podemos ver no programa acima, tomamos a e b variáveis ​​globais que estão sendo acessadas em diferentes funções, como Add() e main(). Considerando que também existem variáveis ​​locais como c, d, Ans1 e Ans2, que estão sendo acessadas pelas funções apenas nas quais são declaradas.

Se tentarmos usar variáveis ​​c e d fora da função Mul(), elas serão usadas como novas variáveis. Como mostramos ao considerar c também na função main(), ela é tratada como uma nova variável.

tipos de dados em java

Locais vs. Global em Python

Exemplo 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 

Saída:

 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. 

No programa acima, pegamos uma variável global v1 e uma variável local v2. Como v1 é global, pode ser facilmente acessado em qualquer função e v2 é local; ele é usado apenas dentro de sua função declarada. Mas se tentarmos usar v1 em func1, ocorrerá um erro. Vejamos o exemplo abaixo:

Exemplo-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 tentarmos acessar a v1, ela poderá ser facilmente acessada em fun1 e func2. Mas se tentarmos acessar v2 fora de sua função, ou seja, em func2, ocorrerá um erro de tempo de execução. Obteremos a saída abaixo após executar o código acima:

ordenar aleatoriamente em sql

Erro de tempo de execução:

 NameError: global name 'v2' is not defined 

Saída:

 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. 

Locais vs. Variável Global em Java

Em Java, não existe conceito de variáveis ​​globais; como Java é uma linguagem de programação orientada a objetos, tudo faz parte da classe. Mas se quisermos tornar uma variável globalmente acessível, podemos torná-la estática usando um estático Palavra-chave.

 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)); } } 

Saída:

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

No programa acima, usamos uma variável local ou variável não estática e uma variável estática. A variável local pode ser acessada usando o objeto da classe Demo, enquanto a variável estática pode ser acessada usando o nome da classe.