Recomendado, 2024

Escolha Do Editor

Diferença entre variável local e global

Como discutimos anteriormente, uma variável é um nome dado a um local de memória e deve ser declarado antes de ser usado. Em C, todas as variáveis ​​são declaradas no início do programa. Em C ++, as variáveis ​​podem ser declaradas, a qualquer momento, antes de serem usadas nas instruções.

As variáveis ​​são classificadas em variáveis ​​"locais" e "globais", que é o principal tópico de nossa discussão. Aqui a principal diferença entre uma variável local e uma global é que, uma variável local é declarada dentro de um bloco de funções, onde a variável global é declarada fora das funções no programa.

Vamos estudar mais algumas diferenças entre uma variável local e uma global, juntamente com um gráfico de comparação.

Gráfico de comparação:

Base para ComparaçãoVariável LocalVariável Global
DeclaraçãoVariáveis ​​são declaradas dentro de uma função.Variáveis ​​são declaradas fora de qualquer função.
EscopoDentro de uma função, dentro da qual eles são declarados.Durante todo o programa.
AcessoAcessado apenas pelas instruções, dentro de uma função na qual elas são declaradas.Acessado por qualquer declaração em todo o programa.
VidaCriado quando o bloco de funções é inserido e destruído na saída.Permaneça em existência durante todo o tempo em que seu programa estiver sendo executado.
ArmazenamentoVariáveis ​​locais são armazenadas na pilha, a menos que especificado.Armazenado em um local fixo decidido por um compilador.

Definição de Variável Local

Uma variável local é sempre declarada dentro de um bloco de funções. Em C, uma variável local é declarada no início de um bloco de código. Em C ++, eles podem ser declarados em qualquer lugar no bloco de código antes de seu uso. Variáveis ​​locais podem ser acessadas apenas pelas instruções escritas dentro de uma função na qual a variável local é declarada. Eles são seguros no sentido de que não podem ser acessados ​​por nenhuma outra função do mesmo programa.

Variável local existe até que o bloco da função esteja em execução e, portanto, destruído após a execução sair do bloco. As variáveis ​​locais perdem o conteúdo assim que a execução sai do bloco em que são declaradas.

A razão por trás disso é que as variáveis ​​locais são armazenadas na pilha, a menos que seu armazenamento especial seja especificado. A pilha é dinâmica por natureza, e a mudança na localização da memória leva à razão pela qual a variável local não mantém seu valor assim que o bloco de uma função existe.

Nota:
No entanto, existe uma maneira de manter o valor de uma variável local, usando o modificador 'static'.

Definição de Variável Global

Uma variável global é declarada fora de todas as funções presentes em um programa. Ao contrário das variáveis ​​locais, a variável global pode ser acessada por qualquer função presente em um programa. As variáveis ​​globais não são muito confiáveis, pois seu valor pode ser alterado por qualquer função presente no programa.

Variáveis ​​globais permanecem em existência até que todo o programa seja executado completamente. Variáveis ​​globais mantêm seus valores até que o programa esteja em execução. A razão é que eles são armazenados em uma região fixa de memória, decidida pelo compilador.

Uma variável global é útil em situações em que várias funções acessam os mesmos dados. Usar um grande número de variáveis ​​globais pode ser problemático, pois pode haver alterações indesejadas no valor de uma variável global.

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

  1. Variáveis ​​locais são chamadas de 'locais' porque são conhecidas apenas pelas instruções escritas em uma função dentro da qual elas são declaradas e não são conhecidas por nenhuma outra função presente fora daquele bloco de funções. No caso da variável global, eles são conhecidos por cada função presente em um programa; Portanto, eles são chamados de "globais".
  2. As variáveis ​​globais mantêm seu valor até que o programa esteja na fase de execução, pois elas são armazenadas em um local fixo decidido pelo compilador. Variáveis ​​locais são armazenadas na pilha; portanto, eles não retêm seu valor, pois a "pilha" é dinâmica por natureza, mas o compilador pode ser direcionado para reter seu valor, usando o modificador "estático".
  3. Se uma variável global e uma local forem declaradas com o mesmo nome, todas as instruções de um bloco de código no qual a variável local é declarada se referirão apenas a uma variável local e não causarão nenhum efeito em uma variável global.
  4. Uma variável local é destruída quando o controle do programa sai do bloco no qual a variável local é declarada. No entanto, uma variável global é destruída quando o programa inteiro é finalizado.

Conclusão:

As variáveis ​​locais e globais são igualmente necessárias ao escrever o programa. Mas, declarar um grande número de variáveis ​​globais pode ser problemático em um programa grande, pois pode causar alterações indesejadas em uma variável global; e seria difícil identificar qual parte de um programa fazia essa mudança. Portanto, deve-se evitar declarar variáveis ​​globais desnecessárias.

Top