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
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.
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:
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?
- 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.