Tipos de Dados em C

De Wiki Cursos IFPR
Ir para: navegação, pesquisa

Tipos de Dados em C

A linguagem C apresenta quatro tipos de dados básicos:

 char
 int
 float
 double

Em muitos computadores, esses quatro tipos são nativos no hardware da máquina[1].

Uma variável double é um número de ponto flutuante de dupla precisão.

Declaração de Dados
Na linguagem C a declaração dos tipos de dados especifica:
  • A quantidade de armazenamento que deve ser reservada para os dados;
Tipo Tamanho
char 1 Byte
int 2 Bytes
float 4 Bytes
double 8 Bytes
  • Como os dados representados pelas palavras binárias devem ser interpretados.

Por exemplo, se um programador C declarar[1]:

 int x, y;
 float a, b;

será reservado espaço em quatro posições para quatro números diferentes. Essas quatro posições podem ser referenciadas pelas variáveis x, y, a e b. O conteúdo das posições reservadas para x e y será interpretado como inteiros, enquanto o conteúdo de a e b será interpretado como números de ponto flutuante.

O compilador responsável pela conversão de programas C em linguagem de máquina traduzirá o "+" contido na instrução

 x = x + y;

em soma de inteiros, e traduzirá o "+" contido na instrução

 a = a + b;

em soma de pontos flutuantes.

Qualificadores

Existem três qualificadores que podem ser aplicados aos tipos da linguagem C:

 short
 long 
 unsigned
Tipo Número de bits Início Fim
char 8 -128 127
unsigned char 8 0 255
int 16 -32.768 32.767
unsigned int 16 0 65.535
short int 16 -32.768 32.767
long int 32 -2.147.483.648 2.147.483.647
unsigned long int 32 0 4.294.967.295
float 32 3,4E-38 3.4E+38
double 64 1,7E-308 1,7E+308
long double 80 3,4E-4932 3.4E+4932

Modeladores

Os modeladores forçam que o resultado de uma expressão seja de um determinado tipo de dados.

Exemplos
Teste as duas versões dos programas exemplo abaixo e compare os resultados:
 #include <stdio.h>
 void main ()
 {
   int num=10;
   float f;
   f=num/7;
   printf ("%f\n",f);
 }
 #include <stdio.h>
 void main ()
 {
   int num=10;
   float f;
   f=(float)num/7;
   printf ("%f\n",f);
 }
No último exemplo o modelador (float) força o resultado da operação com inteiros ser do tipo float.

Referências

  1. 1,0 1,1 TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. Estruturas de dados usando C. Makron Books, 1995.

--Evandro.cantu (discussão) 20h13min de 29 de julho de 2014 (BRT)