Carregando
0x20Lição 3 de 20

Variáveis e tipos

Guarde valores em caixas de memória com nome e aprenda por que toda caixa em C tem um tipo e um tamanho.

12 min Questionário com 6 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Declarar e inicializar variáveis dos tipos básicos
  • Escolher entre int, double e char para um valor
  • Usar sizeof e explicar por que os tipos têm tamanhos

Uma variável é um pedaço de memória com nome que guarda um valor. Em C, você precisa dizer que tipo de valor cada variável guarda - o tipo dela - antes de usá-la. O tipo diz ao compilador quantos bytes reservar e como interpretá-los.

variables.c
1#include <stdio.h>
2
3int main(void) {
4    int age = 30;
5    double height = 1.75;
6    char grade = 'A';
7
8    printf("Age: %d\n", age);
9    printf("Height: %.2f m\n", height);
10    printf("Grade: %c\n", grade);
11    return 0;
12}
Saída
Age: 30
Height: 1.75 m
Grade: A

Declarando e inicializando

int age = 30; faz duas coisas: declara uma variável chamada age do tipo int e a inicializa com o valor 30. Você também pode declarar primeiro e atribuir depois:

int score;      // declared, but holds garbage until assigned!
score = 100;    // assignment
score = score + 5;

Os nomes de variáveis podem usar letras, dígitos e sublinhados, não podem começar com um dígito e diferenciam maiúsculas de minúsculas: total e Total são variáveis diferentes. Escolha nomes que digam o que o valor significa: student_count, e não n.

Os tipos básicos

TipoGuardaTamanho típicoFormato do printf
charum caractere (na verdade, um inteiro pequeno)1 byte%c
intnúmeros inteiros4 bytes%d
longnúmeros inteiros maiores8 bytes na maioria dos sistemas de 64 bits%ld
floatnúmeros decimais, ~7 dígitos de precisão4 bytes%f
doublenúmeros decimais, ~15 dígitos de precisão8 bytes%f

Os tipos inteiros também podem ser unsigned (unsigned int), o que troca os números negativos pelo dobro do alcance positivo. Para decimais, prefira double a float, a menos que tenha um motivo - a precisão extra quase sempre compensa.

Tamanhos e sizeof

Todo tipo ocupa um número fixo de bytes, e o operador sizeof diz quantos. Os tamanhos podem variar entre plataformas (o padrão do C só garante mínimos), e é justamente por isso que o sizeof existe: nunca fixe no código um tamanho que você pode perguntar ao compilador. O sizeof produz um valor do tipo size_t, que você imprime com %zu.

sizes.c
1#include <stdio.h>
2
3int main(void) {
4    printf("char:   %zu byte\n", sizeof(char));
5    printf("int:    %zu bytes\n", sizeof(int));
6    printf("double: %zu bytes\n", sizeof(double));
7    return 0;
8}
Saída
char:   1 byte
int:    4 bytes
double: 8 bytes

Caracteres são números

Um char é um inteiro de um byte. Os literais de caractere entre aspas simples, como 'A', são só um jeito amigável de escrever o código daquele caractere - 65 para 'A' em ASCII. Isso significa que você pode fazer contas com caracteres:

chars.c
1#include <stdio.h>
2
3int main(void) {
4    char letter = 'A';
5    printf("%c is %d\n", letter, letter);
6    printf("Next letter: %c\n", letter + 1);
7    return 0;
8}
Saída
A is 65
Next letter: B

Constantes

Se um valor nunca deve mudar, diga isso com const: const double PI = 3.14159;. O compilador vai recusar qualquer atribuição posterior a ele, o que documenta a sua intenção e pega erros. Você também vai ver #define PI 3.14159 em código mais antigo - uma substituição de texto do pré-processador, sem tipo. Prefira const para valores.

Principais conclusões

  • Toda variável tem um tipo que fixa o tamanho e o significado dela. Declare-a e inicialize-a - variáveis locais não inicializadas guardam lixo.

  • Use int para números inteiros, double para decimais e char para caracteres individuais (que são inteiros pequenos).

  • Pergunte os tamanhos com sizeof (impresso com %zu) em vez de supor, e marque como const os valores que nunca mudam.

Quiz da aula

6 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em C

Estes exercícios rodam de verdade. Escreva o programa, clique em “Executar testes” e leia o que o compilador informa: aprender a ler as mensagens do compilador é metade do aprendizado de C.

Exercício 1

Cartão de perfil

+25 XP

Crie variáveis para uma pessoa e imprima-as. Use um int chamado age com o valor 21, um double chamado gpa com o valor 3.8 e um char chamado initial com o valor 'K'. Imprima exatamente:

Initial: K
Age: 21
GPA: 3.8

Imprima o GPA com um dígito depois do ponto decimal (%.1f).

  • Imprime o perfil
main.c
Carregando editor…

Seu código é compilado com gcc 14 (-Wall -Wextra) e executado no Compiler Explorer (godbolt.org), um serviço público gratuito.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…