Diferença entre variável local e global
Principais diferenças entre variável local e variável global
- A variável local é declarada dentro de uma função, enquanto a variável global é declarada fora da função.
- Variáveis locais são criadas quando a função inicia a execução e são perdidas quando a função termina, por outro lado, uma variável global é criada quando a execução começa e é perdida quando o programa termina.
- A variável local não fornece compartilhamento de dados, enquanto a variável Global fornece compartilhamento de dados.
- As variáveis locais são armazenadas na pilha, enquanto a variável global é armazenada em um local fixo decidido pelo compilador.
- A passagem de parâmetros é necessária para variáveis locais, enquanto não é necessária para uma variável global
O que é uma variável?
Variável é um nome atribuído a uma área de armazenamento que o programa pode manipular. Um tipo de variável determina o tamanho e o layout da memória da variável.
Ele também determina o intervalo de valores que precisam ser armazenados nessa memória e a natureza das operações que podem ser aplicadas a essa variável.
Escopo das Variáveis
O escopo da variável é simplesmente o tempo de vida de uma variável. É um bloco de código sob o qual uma variável é aplicável ou ativa. Por exemplo:
function foo(){ var x; }
Você declara uma variável “x” dentro de uma função “foo”. O escopo dessa variável permanece dentro dessa função e não pode ser usado fora dessa função.
Existem três lugares onde variáveis você pode declarar linguagem de programação de variáveis:
- Dentro de uma função ou bloco: variáveis locais
- Fora de todas as funções: variáveis globais
- Na definição de parâmetros de função: Parâmetros formais
Variável Local
Variável Local é definido como um tipo de variável declarada dentro de bloco de programação ou sub-rotinas. Só pode ser utilizado dentro da sub-rotina ou bloco de código em que é declarado. A variável local existe até que o bloco da função esteja em execução. Depois disso, ele será destruído automaticamente.
Exemplo de variável local
public int add(){ int a =4; int b=5; return a+b; }
Aqui, 'a' e 'b' são variáveis locais
Variável Global
A Variável Global no programa é uma variável definida fora da sub-rotina ou função. Tem um escopo global, o que significa que mantém seu valor durante toda a vida do programa. Conseqüentemente, ele pode ser acessado em todo o programa por qualquer função definida dentro do programa, a menos que esteja sombreada.
Exemplo:
int a =4; int b=5; public int add(){ return a+b; }
Aqui, 'a' e 'b' são variáveis globais.
Variável local versus variáveis globais
Aqui estão algumas diferenças fundamentais entre variáveis locais e globais.
Parâmetro | Locais | Global |
---|---|---|
Objetivo | É declarado dentro de uma função. | É declarado fora da função. |
Valor | Se não for inicializado, um valor lixo será armazenado | Se não for inicializado, zero será armazenado como padrão. |
Lifetime | Ele é criado quando a função inicia a execução e é perdido quando as funções terminam. | Ele é criado antes do início da execução global do programa e perdido quando o programa termina. |
Compartilhamento de dados | O compartilhamento de dados não é possível porque os dados da variável local podem ser acessados por apenas uma função. | O compartilhamento de dados é possível porque múltiplas funções podem acessar a mesma variável global. |
Parâmetros Técnicos | A passagem de parâmetros é necessária para variáveis locais acessarem o valor em outra função | A passagem de parâmetros não é necessária para uma variável global, pois é visível em todo o programa |
Modificação do valor da variável | Quando o valor da variável local é modificado em uma função, as alterações não são visíveis em outra função. | Quando o valor da variável global é modificado em uma função, as alterações são visíveis no resto do programa. |
Acessado por | Variáveis locais podem ser acessadas com a ajuda de instruções, dentro de uma função na qual são declaradas. | Você pode acessar variáveis globais por qualquer instrução do programa. |
Armazenamento de memória | Ele é armazenado na pilha, a menos que seja especificado. | Ele é armazenado em um local fixo decidido pelo compilador. |
Vantagens de usar variáveis globais
- Você pode acessar a variável global de todas as funções ou módulos de um programa
- Você só precisa declarar a variável global uma única vez fora dos módulos.
- É idealmente usado para armazenar “constantes”, pois ajuda a manter a consistência.
- Uma variável global é útil quando várias funções acessam os mesmos dados.
Vantagens de usar variáveis locais
- O uso de variáveis locais oferece uma garantia de que os valores das variáveis permanecerão intactos enquanto a tarefa estiver em execução
- Se várias tarefas alterarem uma única variável que está sendo executada simultaneamente, o resultado poderá ser imprevisível. Mas declará-la como variável local resolve esse problema, pois cada tarefa criará sua própria instância da variável local.
- Você pode dar o mesmo nome às variáveis locais em funções diferentes porque elas só são reconhecidas pela função em que são declaradas.
- As variáveis locais são excluídas assim que qualquer função termina e liberam o espaço de memória que ocupa.
Desvantagens de usar variáveis globais
- Muitas variáveis declaradas como globais permanecem na memória até que a execução do programa seja concluída. Isso pode causar problemas de falta de memória.
- Os dados podem ser modificados por qualquer função. Qualquer instrução escrita no programa pode alterar o valor da variável global. Isto pode dar resultados imprevisíveis em ambientes multitarefa.
- Se as variáveis globais forem descontinuadas devido à refatoração do código, será necessário alterar todos os módulos onde elas são chamadas.
Desvantagens de usar variáveis locais
- O processo de depuração de uma variável local é bastante complicado.
- Dados comuns necessários para passar repetidamente, pois o compartilhamento de dados não é possível entre módulos.
- Eles têm um escopo muito limitado.
O que é mais útil?
As variáveis locais e globais são igualmente importantes ao escrever um programa em qualquer idioma. No entanto, um grande número de variáveis globais pode ocupar uma memória enorme. Uma mudança indesejável nas variáveis globais torna-se difícil de identificar. Portanto, é aconselhável evitar declarar variáveis globais indesejadas.