- Variáveis Locais
- Parâmetros Formais
- Variáveis Estáticas
- Variáveis Globais
- Variáveis de Entrada
- Variáveis Externas
- Inicialização de Variáveis
- Visibilidade Escopo e Tempo de Vida de Variáveis
- Criação e Exclusão de Objetos
Visibilidade Escopo e Tempo de Vida de Variáveis
Existem dois tipos básicos de escopo: escopo local e escopo global.
Uma variável declarada fora de todas as funções está localizada no escopo global. O acesso a tais variáveis pode ser feito de qualquer lugar no programa. Estas variáveis são localizadas no conjunto (pool) global de memória, assim seus tempos de vida coincidem com o tempo de vida do programa.
Uma variável declarada dentro de um bloco (parte do código entre chaves) pertence ao escopo local. Tal variável não é visível (e portanto não é disponível) fora do bloco no qual está definida. O caso mais comum de declaração local é uma variável declarada dentro de uma função. Uma variável declarada localmente está localizada na pilha (stack), e o tempo de vida de tal variável é igual ao tempo de vida da função.
Já que o escopo de uma variável local é o bloco em que ela está declarada, é possível declarar variáveis com o mesmo nome que variáveis declaradas em outros blocos, mesmo aquelas declaradas em níveis mais acima, até o nível global.
Exemplo:
void CalculateLWMA(int rates_total,int prev_calculated,int begin,const double &price[])
|
Preste atenção na variável i, declarada na linha
for(int i=begin; i<limit; i++)
|
Seu escopo é somente o ciclo do for; fora deste ciclo existe uma outra variável com o mesmo nome, declarada no começo da função. Além disso, a variável k está declarada no corpo do loop, seu escopo é o corpo do loop.
Variáveis locais podem ser declarados com o especificador de acesso static. Neste caso, o compilador tem uma variável no conjunto (pool) global de memória. Portanto, o tempo de vida de uma variável estática é igual ao tempo de vida do programa. Aqui o escopo de tal variável é limitado ao bloco no qual ela está declarada.
Também Veja
Data Types, Encapsulation and Extensibility of Types,Initialization of Variables, Creating and Deleting Objects