Linguagem de Programação C

Linguagem de Programação C

(Parte 2 de 7)

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

As variáveis são o aspecto fundamental de qualquer linguagem de computadorUma
nome para referenciar o seu conteúdoO espaço de memória de uma variável pode ser
compartilhado por diferentes valores segundo certas circunstânciasEm outras palavras, uma

2.4 Variáveis variável em C é um espaço de memória reservado para armazenar um certo tipo de dado e tendo um variável é um espaço de memória que pode conter, a cada tempo, valores diferentes.

int num;/* declaracao */
num = 2;/*atribui um valor*/

/* Programa : Exemplo de variáveis! */ #include <stdio.h> void main() { printf(“Este é o número dois: %d”, num); /*acessa a variável*/ }

um tipo, int, e um nome, numA segunda instrução (num = 2) atribui um valor à variável e este
valor será acessado através de seu nomeUsamos o operador de atribuição (=) para este fim. A
terceira instrução chama a função printf() mandando o nome da variável como argumentoEsta lê o
telaO emprego da função printf() será apresentado em detalhe, posteriormente.
Em C todas as variáveis devem ser declaradasSe você tiver mais de uma variável do
mesmo tipo, poderá declará-las de uma única vez separando seus nomes por vírgulasExemplo:

A primeira instrução (int num) é um exemplo de declaração de variável, isto é, apresenta valor da variável e substitui na posição indicada por %d, compondo assim a frase apresentada na int aviao, foguete, helicoptero;

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

2.5 Tipos de Dados

forma como o seu conteúdo será armazenadoEm C existem apenas 5 tipos básicos de variáveis,

O tipo de uma variável informa a quantidade de memória, em bytes, que esta irá ocupar e a que são:

“modificadores” na declaração de variáveisOs “modificadores” de tipos oferecidos em C são:

Com exceção de void, os tipos de dados básicos podem estar acompanhados por Tipos de Dados Resultantes:

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

“unsigned int”O tipo int tem sempre o tamanho da palavra da máquina, isto é, em computadores

Observação: As declarações que aparecem na tabela acima entre parênteses (), indicam que estas declarações são optativas. Por exemplo “short unsigned int” indica a mesma precisão que de 16 bits ele terá 16 bits de tamanho.

dos números negativosA escolha de nomes significativos para suas variáveis pode ajudá-lo a
entender o que o programa faz e prevenir errosUma variável não pode ter o mesmo nome de uma
palavra-chave de CEm C, letras minúsculas e maiúsculas são diferentes.

Emprega-se o complemento de dois dos números positivos para o cálculo e representação

Exemplo de um programa que emprega as variáveis apresentadas.

float y;/*variável Real não inicializada*/
int i;/*variável Inteira não inicializada*/

void main() { double x = 3.24; /*var. Double inicializada com 3.24 */ char c = 'a'; /*variável Char inicializada com a */ i = 100; /*variável i recebe o valor 100 */ y = (float) i; /*converte tipos */ }

Preste atenção na operação “y= (float) i;”Esta operação é muita empregada para conversão

de tipos de variáveis diferentes. Suponha que você tenha uma variável ‘x’ de tipo A e queira

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

convertê-la para o tipo B e armazená-la em y deste tipoVocê pode executar esta operação através

do operador: y = ((B) x);

pequena, ou seja, variáveis que utilizam um número diferente de bits para representar dadosVocê
pode perder informações importantes por causa desta conversãoPor exemplo, se você converter

Atenção: Cuidado ao converter variáveis com precisão grande para variáveis com precisão um float num int, você perderá todos os dígitos depois da vírgula (precisão).

void main() { float y = 3.1415; int x = 0; x = (int) y; /* Equivalente à: x = 3 */ }

Um constante tem valor fixo e inalterávelNo primeiro programa exemplo, mostramos o

2.6 Constantes uso de uma cadeia de caracteres constante juntamente com a função printf(): printf(“Bom Dia!!!!”);

Há duas maneiras de declarar constantes em C:

a) usando a diretiva #define do pré-processador: #define < nome da constante > < valor >

antes da compilação pelo valor atribuídoNão é reservado espaço de memória no momento da
declaração defineA diretiva deve ser colocada no inicio do arquivo e tem valor global (isto é, tem

Esta diretiva faz com que toda aparição do nome da constante no código seja substituída valor sobre todo o código). Exemplo:

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

#definesize 400
#definetrue 1
#definefalse 0 /* não se utiliza ";" nem "=" */

b) utilizando a palavra-chave "const": const < tipo > < nome > = < valor >;

Esta forma reserva espaço de memória para uma variável do tipo declaradoUma constante
pode ser atribuído um novo valor àquela “variável” durante a execução do programa)Exemplo:

assim declarada só pode aparecer do lado direito de qualquer equação (isto equivale a dizer que não const char letra = 'a'; const int size = 400; const double gravidade = 9.81;

/* Programa: Exemplo do uso de Constantes */ #define Size 4 void main() { const char c = ‘c’; const int num = 10; int val = Size; }

caracteres entre aspa duplas e constantes numéricas com o número propriamente ditoExemplos de

Em C uma constante caractere é escrita entre aspas simples, uma constante cadeia de constantes: a) caractere: ‘a’ b) cadeia de caracteres: “Bom Dia !!!!” c) número: -3.141523

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

Uma das mais poderosas características oferecidas pela linguagem C é o uso de ponteiros
Um ponteiro proporciona um modo de acesso a variáveis sem referenciá-las diretamenteO
mecanismo usado para isto é o endereço da variávelDe fato, o endereço age como intermediário
Basicamente, um ponteiro é uma representação simbólica de um endereçoPortanto, utiliza-
se o endereço de memória de uma variável para acessá-laUm ponteiro tem como conteúdo um
endereço de memóriaEste endereço é a localização de uma outra variável de memória. Dizemos
A declaração de ponteiros tem um sentindo diferente da de uma variável simplesA

2.7 Ponteiros entre a variável e o programa que a acessa. que uma variável aponta para uma outra quando a primeira contém o endereço da segunda.

instrução: int *px; declara que *px é um dado do tipo int e que px é um ponteiro, isto é, px contém o endereço de uma variável do tipo int.

bytes de memória onde os endereços serão armazenadosAlém disto, o compilador deve estar
ciente do tipo de variável armazenada naquele endereço; neste caso inteiroO endereço de uma

Para cada nome de variável (neste caso px), a declaração motiva o compilador a reservar dois variável pode ser passado à um ponteiro através do operador &, como apresentado abaixo:

int *ptr;/* declara um ponteiro para um inteiro */
ptr = 0;/* inicializa o ponteiro com o endereco ‘0’ */
ptr = #/* atribui ao ptr o endereço da variável num*/
num = 10;/* atribui à variável inteira o valor ‘10’ */
/* atribui a ‘valor’ */

void main() { int num, valor; /* declara as variáveis como inteiras */ valor = *ptr; /* acessa o conteúdo apontado por ‘ptr’ e */ }

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

Neste programa, primeiro declaram-se duas variáveis inteirasEm seguida, declara-se um
ponteiro para uma variável do tipo inteiraEste ponteiro tem o seu conteúdo inicializado com ‘0’.
aparecimento de errosPois, enquanto o endereço de um ponteiro for nulo, isto indicará que este

17 Este é um procedimento normal na manipulação de ponteiros, muito empregado para evitar o endereço contém um valor inválido e, portanto, o conteúdo representado por este endereço não deve ser acessado.

este endereço em ‘ptr’Logo após, atribuímos a variável inteira ‘num’ o valor 10. Como ‘ptr’
contém o endereço de ‘num’, logo ‘ptr’ poderá já acessar o valor 10 armazenado na variável ‘num’
‘valor’Outro exemplo da manipulação de ponteiros:

Na seqüência, emprega-se o operador & para obter o endereço da variável ‘num’ e armazenar Isto é feito na última linha, onde o conteúdo apontado por ‘ptr’ é acessado e copiado para a variável

i = 1;/* i recebe o valor ‘1’ */
j = 2;/* j recebe o valor ‘2’ */
ptr = &i;/* ptr recebe o valor do endereço de i */

void main() { int i, j, *ptr; /* declara as variáveis */ *ptr = *ptr + j; /* equivale a: i = i + j */ }

Nosso objetivo neste momento não é apresentar todas as potencialidades dos ponteiros
Estamos aqui apresentando os ponteiros primeiramente como um tipo de dado especialO
importante aqui é entender o conteúdo de um ponteiro e como este pode ser empregado

Posteriormente, apresentaremos as funcionalidades dos ponteiros à medida que formos evoluindo no aprendizado de C.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

2.8 Exercícios

2.1 Crie o seu programa “Hello, World!” ou “Olá, Mamãe!”;

dos modificadores possíveisInicialize estas variáveis com valores típicos. Use o método para a
b) A variável do tipo double em todos os outros tipos de variáveisDiscuta o que

2.2 Crie um programa que contenha todos os tipos de variáveis possíveis e as combinações conversão de tipos para converter: a) A variável do tipo char em todos os outros tipos de variáveis. acontece com a precisão das variáveis.

2.3 Crie um programa que exemplifique a utilização de ponteirosQue contenha pelo menos

a declaração de um ponteiro, sua inicialização com zero, a obtenção do endereço de uma variável com o operador ‘&’ e o acesso ao dado representado pelo ponteiro.

2.4 Utilize as diretivas #define para criar constantes e empregue estas constantes para inicializar as variáveis do programa acima.

(Parte 2 de 7)

Comentários