Tipos de Dados em C

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Tipos de Dados em C

Tipos de Dados
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 int:
 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
Modeladores
Forçam que o resultado de uma expressão seja de um determinado tipo de dados:
 #include <stdio.h>
 void main ()
 {
   int num=10;
   float f;
   f=(float)num/7;
   printf ("%f\n",f);
 }
No 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) 20h04min de 3 de julho de 2014 (BRT)