Академический Документы
Профессиональный Документы
Культура Документы
3:
Tipos de Dados Simples
Sumário
Taxonomia de tipos de dados
Taxonomia de tipos de dados simples
Características de tipos de dados simples
Qualificadores de comprimento e de sinal de tipos de dados simples
Tipos de dados inteiros
Tipos de dados reais
Inicialização de variáveis
Valor de / endereço de variável
Tipos de dados apontadores
Acessos directo e indirecto a valor duma variável
Tipos de dados enumerados
A directiva typedef
Taxonomia de nomes ou identificadores
2
1
Taxonomia
de tipos de dados
Tipos de Dados
Taxonomia
de tipos de dados simples
♦ Numéricos
pré-definidos: char, int, float,
double
pertencem ao léxico da linguagem
♦ Enumerados
definidos pelo utilizador
não pertencem ao léxico da
linguagem
requer a utilização da palavra
reservada enum
4
2
Características
dos tipos de dados simples
♦ Atomicidade
Têm valor atómico
Exemplo (inteiros):
int x = 31;
♦ Ordem
Têm uma ordem ou escala
Exemplo (inteiros):
20 < 31 < 35 < 36
Qualificadores
(de comprimento e de sinal)
de tipos de dados simples
short
Exemplo (declaração de variável inteira): short int x;
long
Exemplo (declaração de variável real): long int y;
signed
Exemplo (declaração de variável inteira c/ sinal): signed int y;
unsigned
Exemplo (declaração de variável inteira s/ sinal): unsigned int j;
3
Formatos de leitura e escrita
em linguagem C
Exemplos:
char c;
c = ´A´; /* estas instruções são equivalentes */
c = 65;
----------------------------
char a, b;
a = 5; /* a contém o valor 5 */
b = ´5´; /* b contém o valor 53 na tabela ASCII */
4
Exemplo
/* OBJECTIVO:
Escreve no ecrã o valor char dum carácter
*/
#include <stdio.h>
main()
{
char ch;
printf(“Escreva um caracter:”);
scanf(“%c”,&ch);
printf(“O caracter é = %c\n”,ch);
}
formato de caracteres 9
Exemplo
/* OBJECTIVO:
Escreve no ecrã o valor inteiro dum carácter
*/
#include <stdio.h>
main()
{
char ch;
printf(“Escreva um caracter:”);
scanf(“%c”,&ch);
printf(“O seu valor numerico = %d\n”,ch);
exit(0);
}
formato de inteiros 10
5
Tipos de dados reais:
float e double
• O tipo de dados float é para números reais de precisão simples (4
bytes).
• O tipo de dados double é para números reais de precisão dupla (8
bytes).
Exemplos:
float x, y, z, w, t;
x = 0.345;
y = .67;
z = 89.;
w = 6.2E+5; /* notação científica: representa 6.2×105 */
t = 3.5E-4; /* notação científica: representa 3.5×10-4 */
----------------------------
double a;
a = 5.23456789; 11
Saída no ecrã:
O valor de j = 1
O endereco de j = 248623 12
6
Tipos de dados apontadores:
char *, int *, float *, double *
Qualquer variável apontadora contém um valor (inteiro) que é um
endereço de memória. memória
valor de j
endereço de j
Exemplo:
j 1342167
float j = 1.2;
float *p; p
p = &j;
13
Exemplo
#include <stdio.h>
main()
{
float j = 1.2;
float *p;
Saída no ecrã:
O valor de j = 1.2
O endereco de j = 1342167 14
7
Acesso a valor
de variável
Há duas formas de ler (aceder a) o valor duma variável em memória:
− Leitura directa (ou acesso directo) - Utiliza-se o nome da variável.
− Leitura indirecta (ou acesso indirecto) - Utiliza-se operador de valoração
* seguido de nome de variável apontadora.
memória
valor de j
endereço de j
Exemplo: j 1342167
O acesso ao valor 1.2 de j faz-se
através do uso:
• da variável j
p
• da variável p que aponta para j
15
Exemplo
#include <stdio.h>
main()
{
float j = 1.2;
float *p; acesso DIRECTO ao
valor de j
p = &j; /* atribui o endereço de j a p */
printf("O valor de j = %f\n",j);
printf("O valor de j = %f\n",*p);
} acesso INDIRECTO
ao valor de j
Saída no ecrã:
O valor de j = 1.2
O valor de j = 1.2 16
8
Tipos de dados apontadores
definidos pelo utilizador
− A linguagem C não tem propriamente tipos de dados apontadores pré-definidos.
− O que a linguagem C oferece é um operador * que permite definir tipos de dados
apontadores; por exemplo: char *, int *, float *, double *, etc.
− Às vezes, por uma questão estética, faz-se o mascaramento dum tipo de dados
apontadores através da directiva typedef.
− Têm também uma ordem! memória
valor de j
endereço de j
Exemplo: j 1342167
17
Exemplo
#include <stdio.h>
typedef float* pfloat; /*novo tipo de dados apontadores*/
main()
{ float j = 1.2;
pfloat p;
Saída no ecrã:
O valor de j = 1.2
O valor de j = 1.2 18
9
Tipos de dados enumerados
− A linguagem C não tem propriamente tipos de dados enumerados pré-definidos.
− O que a linguagem C oferece é um operador enum que permite definir tipos de
dados enumerados; por exemplo: enum cor, enum dia, etc.
− Às vezes, por uma questão estética, faz-se o mascaramento dum tipo de dados
enumerados através da directiva typedef.
− Têm também uma ordem!
Exemplo:
19
Exemplo
#include <stdio.h>
enum boolean {FALSE,TRUE};
main()
{
enum boolean b;
int x=3,y=2;
b = x > y;
printf(“O valor de b = %d",b) ;
}
Saída no ecrã:
O valor de b = 1
20
10
Exemplo
(c/ typedef)
#include <stdio.h>
typedef enum {FALSE,TRUE} boolean;
main()
{
boolean b;
int x=3,y=2;
b = x > y;
printf(“O valor de b = %d",b) ;
}
Saída no ecrã:
O valor de b = 1
21
Nota IMPORTANTE:
− Ao contrário de grande parte das linguagens, a linguagem C não tem
explicitamente o tipo de dados boolean. Foi por isso que o criámos no exemplo
anterior.
22 FIM
11