Buscar

variaveis locais e globais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

www.tiexpert.net Pág. 1 de 2 
Variáveis Globais e Locais
Agora que aprendemos como criar funções, uma nova concepção deve estar em mente: A 
diferença entre variáveis globais e locais.
Variáveis locais
Variáveis locais são aquelas nas quais apenas a função onde ela está pode usá-la. Por 
exemplo, se declaramos int x dentro da função main, apenas a função main poderá utilizá-la 
para guardar dados e nenhuma outra função poderá utilizar o int x da função main. Veja:
#include <iostream>
#include <cstdlib>
using namespace std;
int obterY (void) //criando a função
{
 int y; //apenas a função obterY pode utilizar
 y=10*5;
 return y;
}
int main (void){
 int valorDeY, x; // apenas a função MAIN pode utilizar
 cout <<"digite o valor de X: ";
 cin >> x;
 cin.ignore ();
 valorDeY=obterY();
 cout <<"\nX="<<x<<"\tY="<<valorDeY<<"\n\n";
 system ("pause");
} 
Perceba que a variável x só pode ser utilizado por main e a variável y só pode ser utilizada por 
obterY. Para conseguirmos utilizar o valor guardado em y na função obterY, tivemos que 
retornar (por na saída da função) o valor de y (return y) e guardamos dentro de outra variável 
que estava em main - valorDeY.
Variáveis globais
As variáveis globais são declaradas da mesma forma que uma variável local - primeiro o tipo, 
depois o nome da variável. Mas a diferença é que esta variável é declarada fora de qualquer 
função. Por convenção, geralmente, utilizamos um underline (_) no começo do nome da 
variável para facilitar a leitura do programa e facilmente percebermos de que se trata de uma 
variável global.
Variáveis globais podem ser utilizadas por qualquer função. E qualquer função pode alterar o 
valor, utilizá-la em um processo ou até mesmo atribuir o valor que quiser.
#include <iostream>
#include <cstdlib>
using namespace std;
int _iniciado=0; //variável global começa em 0
void start (void){
 _iniciado++;
}
int main (void){
 start (); //chamando a função start
 int x=0, opcao; // variáveis locais, apenas a função MAIN pode utilizar
 x++;
 cout <<"Este programa foi iniciado "<<_iniciado<<" vez(es)";
http://www.tiexpert.net/programacao/c/variaveis-globais-e-locais.php
www.tiexpert.net Pág. 2 de 2 
 cout <<"\nO valor de X e "<<x;
 cout <<"\n\nDeseja reiniciar o programa?\n1.\t\tSIM\nOutro numero\tNAO\n";
 cin >> opcao;
 cin.ignore ();
 if (opcao==1)
 main (); //reiniciar o programa
 return 0;
} 
Perceba que a variável _iniciado está sendo usada nas duas funções - main e start. Toda vez 
que a função start é chamada, é incrementado (somado) um a _iniciado. Prestemos atenção 
no seguinte também, dentro da função main também tem uma variável chamada x que toda 
vez que chamamos main deve ser incrementada (x++).
Então, por que apenas o valor de _iniciado muda e x continua sempre 1?
É aí que está a vantagem e também a desvantagem da variável global.
A variável global está constantemente na memória. O fato de reiniciar o programa ou não, 
pouco importa, porque o valor de _iniciado nunca é reinicializado quando chamamos uma 
função. A não ser que em algum lugar do programa nós especifiquemos isso.
Já as variáveis locais estão presas as funções. Cada vez que chamamos uma função, também 
chamamos as variáveis dentro da função. Se finalizamos uma função, também finalizamos a 
variável. Resumindo, se reiniciamos a função, também reiniciamos a variável daquela função.
A desvantagem da variável global é a dificuldade de lidar com ela. Devemos usar variáveis 
globais apenas quando realmente necessário.
Porque, imagine usar uma variável global e dentro de nosso programa tem 10 ou mais 
funções, todas elas utilizando a mesma variável global e alterando seu valor. Ao final de todas 
as operações, dificilmente saberemos qual será seu resultado. Ou seja, isso dificultará a lógica 
do nosso programa, deixando-o difícil de interpretar.
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons
Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/
ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
http://www.tiexpert.net/programacao/c/variaveis-globais-e-locais.php

Outros materiais