Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tipos de Acesso, Inicialização e Constantes Declarações Objetivo Continuação... ESPECIFICADOR de TIPO de ACESSO const e volatile Além disso, discutiremos as regras gerais do processo de INICIALIZAÇÃO de VARIÁVEIS e ao final apresentaremos a forma das CONSTANTES associadas aos tipos básicos de dados em C. 2 Especificador de Tipo de Acesso Em uma declaração de variáveis (globais ou locais), um ESPECIFICADOR de TIPO de ACESSO pode ser utilizado para estabelecer a maneira como as variáveis podem ser acessadas ou modificadas. Em C, há duas PALAVRAS RESERVADAS que funcionam como ESPECIFICADORES de TIPO de ACESSO durante uma declaração de variáveis: const volatile 3 const variáveis declaradas const podem ser inicializadas mas não modificadas usar const é útil quando vc. quer ter certeza que (parte do) seu código não irá alterar valores de certas variáveis; uma situação típica é na declaração de CONSTANTES SIMBÓLICAS, como em: const double PI = 3.1415927; 4 volatile este ESPECIFICADOR indica que a variável pode sofrer modificações de maneira não especificada pelo programa. Em outras palavras, uma variável volatile pode ter seu conteúdo alterado (via apontadores e endereços) por comandos que fazem parte de outros programas. Na prática, volatile indica ao compilador para não realizar otimização de EXPRESSÕES contendo tais variáveis. 5 const e volatile juntos Os ESPECIFICADORES const e volatile podem ser utilizados juntos! Exemplo: Neste exemplo, a variável port não pode ser modificado pelo programa sendo escrito mas pode ter seu valor modificado por comandos externos ao programa! const volatile unsigned short int port = 80; 6 Atividade 1: variáveis const 1. const int x = 100; 2. int main() { 3. x = x + 1; /* Isto irá gerar um erro de compilação */ 4. } Teste o código abaixo e observe o Erro de Compilação ! 7 Inicialização de Variáveis Inicializar uma variável significa dar à variável um valor, no mesmo momento em que ela é declarada. De maneira geral, o valor inicial de uma variável pode ser o resultado de uma EXPRESSÃO envolvendo dentre outros CONSTANTES, OPERADORES e outras VARIÁVEIS. 8 Regras para inicialização Variáveis GLOBAIS e variáveis LOCAIS static declaradas COM =INICIALIZADOR são inicializadas com o valor de INICIALIZADOR apenas uma vez no começo do programa Variáveis GLOBAIS e variáveis LOCAIS static declaradas SEM =INICIALIZADOR são inicializadas com ZERO apenas uma vez no começo do programa 9 Regras para inicialização Variáveis LOCAIS auto e register declaradas COM =INICIALIZADOR são inicializadas com o valor de INICIALIZADOR toda vez que o BLOCO no qual foram declaradas for ativado Variáveis LOCAIS auto e register declaradas SEM =INICIALIZADOR têm valor DESCONHECIDO antes de ser efetuada uma primeira atribuição a elas Apenas DECLARAÇÕES que são DEFINIÇÕES podem conter =INICIALIZADOR. Assim, variáveis declaradas extern não podem ser inicializadas no momento de suas declarações! 10 Atividade 2: Inicialização de Variáveis Compile, execute e compare a saída do programa abaixo com o que foi dito acima sobre inicialização de variáveis: Fonte 11 Constantes Um dos elementos principais na INICIALIZAÇÃO de VARIÁVEIS (e de EXPRESSÕES em geral) são as constantes. Constantes são VALORES ESPECÍFICOS de qualquer um dos TIPOS de DADOS básicos. 12 Constantes 13 Constantes 14 Constantes Nas constantes caracter e string, além dos caracteres comuns, caracteres de controle (não imprimíveis) são escritos através de um 'código de barra invertida' (veja tabela a seguir) Não confunda constantes caracter com string! Uma constante de um único caracter é colocada entre aspas simples; constantes string são colocadas entre aspas duplas. Ou seja,'a' (constante char) é diferente de "a" (constante string) 15 Constantes 16 Leitura Recomendada C Completo e Total capítulo 2 17 Exercícios 1. Considere o programa da atividade 2. Descreva passo a passo como o ambiente de execução (área estática de dados + pilha de execução) evolui durante a execução do programa. Na sua descrição localize onde são alocadas as variáveis do programa. 2. Explique qual a diferença entre '0', '\0', "0“ 18 Exercícios 3. A matemática e a física é repleta de exemplos de constantes fundamentais. Utilizando variáveis decladas com o ESPECIFICADOR const, mostre como você representaria as seguintes constantes abaixo: a) razão áurea (f); b) número de Euler (e); c) velocidade da luz no vácuo (c); d) massa do elétron em repouso (me); e) número de Avogadro (L); 19 Exercícios 4) Escreva um programa que converta números de decimais para hexadecimal e octal. Dica: uma maneira simples de fazer o programa é ler os números em decimal e os imprimir na tela como constantes inteiras escritas em hexadecimal e octal. Para saber como usar a função printf para imprimir inteiros em hexadecimal e octal cosulte os livros ou a internet. Veja por exemplo, a página abaixo: http://www.dca.fee.unicamp.br/cursos/EA87 6/apostila/HTML/node131.html 20
Compartilhar