A linguagem C é estaticamente tipada, isso quer dizer que toda variável declarada deve ter um tipo declarado.
Neste curso vamos trabalhar com 3 tipos de variáveis:
int
para representar números inteiros de -2.147.483.648 a 2.147.483.647, com 4 bytes, ou 32 bitsfloat
para representar números reais com 6 casas de precisão, de 1.2E-38 a 3.4E+38, com 4 bytes,char
para representar letrasEm C temos também outros tipos como os
double
para números reais com mais precisão, 16 bytes, com 15 casas de precisão, de 2.3E-308 a 1.7E+308.long
double
ou int
, se precisar de números maioresUsaremos as operações matemáticas básica:
+
para soma entre dois int
ou float
,-
para subtração entre dois dois int
ou float
,*
para multiplicação entre dois dois int
ou float
,/
para divisão entre dois dois int
ou float
,%
operação entre dois números inteiros que calcula o resto da divisão do primeiro pelo segundoPorém fique atento! Em C quando você divide dois números inteiros, o resultado será um número inteiro: 5/2 = 2
.
Diferente de Python, uma variável em C nunca pode mudar o tipo dela, porém um valor do tipo float
pode ser transformado para um valor do tipo int
e vice versa.
O código a seguir
int a = 2;
printf("como int: %d\n", a);
printf("como float: %f\n", (float)a);
Irá imprimir
como int: 2
como float: 2.000000
Também podemos atribuir um valor do tipo para uma variável do tipo float para ter o mesmo resultado.
int a = 2;
printf("como int: %d\n", a);
float b = a;
printf("como float: %f\n", b);
Caso um valor do tipo float seja transformado em um do tipo int, haverá um truncamento, onde a parte decimal do número original será perdida no novo valor do inteiro.
float a = 2.3;
printf("como float: %f\n", a);
printf("como int: %d\n", (int)a);
Irá imprimir
como float: 2.300000
como int: 2
Chamamos isto de truncamento.
char
e int
Um char
pode ser tratado como int
e vice versa, o número inteiro correspondente ao char
será seu código na table ascii
printf("como char: %c\n", 97);
printf("como int: %d\n", 'a');
como char: a
como int: 97
Como vimos, devemos usar palavras chaves para imprimir valores na função printf
.
%c
escrita de um caractere (char
)%d
ou %i
escrita de números inteiros (int
ou char
)%u
escrita de números inteiros sem sinal (unsigned
)%f
escrita de número reais (float
ou double
)%s
escrita de vários caracteres%p
escrita de um endereço de memória%e
ou %E
escrita em notação científicaTanto números inteiros como reais podem ser formatados na hora de ser impressos, veja o exemplo abaixo:
float pi = M_PI;
// formatacao normal
printf("numero %f\n", pi);
// numero ocupa 10 espacos
printf("numero %10f\n", pi);
// numero tera apenas 2 casas decimais
printf("numero %.2f\n", pi);
/*
numero todo ocupa 7 espacos,
tem apenas 2 casas decimais,
espacos a esquerda sao completados por 0
*/
printf("numero %07.2f\n", pi);
numero 3.141593
numero 3.141593
numero 3.14
numero 0003.14
.