Variáveis e tipos básicos
Esta aula aborda variáveis e tipos básicos em C, incluindo declaração, tipos int, float, double, char, inicialização e convenções de nomes. O conteúdo é detalhado com exemplos práticos e exercícios para fixação.
Nesta aula, vamos explorar os fundamentos das variáveis e tipos básicos na linguagem C. Variáveis são usadas para armazenar dados que podem ser manipulados durante a execução do programa. A escolha correta do tipo de dado é essencial para garantir eficiência e evitar erros.
Dominar esses conceitos é o primeiro passo para escrever programas em C que funcionem corretamente. Veremos como declarar variáveis, os principais tipos primitivos (int, float, double, char), como inicializá-las e as convenções de nomenclatura adotadas pela comunidade.
Declaração
Em C, toda variável deve ser declarada antes de ser usada. A declaração informa ao compilador o tipo de dado e o nome da variável, permitindo que ele reserve espaço na memória. A sintaxe básica é: tipo nome_da_variavel;.
Por exemplo, para declarar uma variável inteira chamada idade, escrevemos: int idade;. Você pode declarar várias variáveis do mesmo tipo em uma única linha separando-as por vírgulas: int a, b, c;. A declaração deve terminar com ponto e vírgula.
Exemplo de declarações:
int contador; // variável inteira
float salario; // ponto flutuante de precisão simples
double pi; // ponto flutuante de precisão dupla
char letra; // caractere únicoint, float, double, char
Os tipos básicos em C são fundamentais para representar diferentes categorias de dados. O tipo int armazena números inteiros (positivos, negativos ou zero). Ocupa geralmente 4 bytes (32 bits) em sistemas modernos, com faixa de valores de -2.147.483.648 a 2.147.483.647.
Os tipos float e double são usados para números de ponto flutuante (reais). float tem precisão simples (cerca de 6-7 dígitos decimais) e ocupa 4 bytes. double tem precisão dupla (cerca de 15-16 dígitos) e ocupa 8 bytes. Por padrão, literais de ponto flutuante são double; para forçar float, use o sufixo f (ex.: 3.14f).
O tipo char armazena um único caractere, como 'A', '7' ou '$'. Ocupa 1 byte e é internamente tratado como um inteiro pequeno (código ASCII). Pode ser usado para armazenar valores numéricos de -128 a 127 (ou 0 a 255 se unsigned).
Exemplos de uso:
int idade = 25;
float altura = 1.75f; // note o sufixo f
double precisao = 3.141592653589793;
char inicial = 'J';Inicialização
Inicializar uma variável significa atribuir um valor a ela no momento da declaração. Em C, variáveis não inicializadas contêm valores lixo (indeterminados), o que pode causar comportamentos imprevisíveis. Portanto, é uma boa prática inicializar sempre as variáveis.
Formas de inicialização:
- Inicialização direta:
int x = 10; - Inicialização com chaves (C99 em diante):
int y = {20};(útil para structs e arrays) - Atribuição posterior:
int z; z = 30;
Exemplo completo:
#include <stdio.h>
int main() {
int a = 5; // inicialização direta
float b = 2.5f;
char c = 'X';
double d = 3.14;
printf("a = %d, b = %.1f, c = %c, d = %.2f\n", a, b, c, d);
return 0;
}Convenções de nomes
Escolher nomes significativos para variáveis é crucial para a legibilidade do código. Em C, as regras para identificadores são:
- Podem conter letras (maiúsculas e minúsculas), dígitos e underscore (_).
- Não podem começar com dígito.
- Não podem ser palavras reservadas da linguagem (ex.: int, float, return).
- Diferenciam maiúsculas de minúsculas (case-sensitive):
idadeeIdadesão diferentes.
Boas práticas de nomenclatura:
- Use nomes descritivos:
salarioBrutoem vez desb. - Prefira o estilo snake_case (com underscore) ou camelCase. A comunidade C geralmente usa snake_case para variáveis e funções.
- Evite nomes muito curtos, exceto para contadores de loops (i, j, k).
- Constantes costumam ser escritas em MAIÚSCULAS com underscore:
TAXA_JUROS.
Exemplos de nomes válidos e inválidos:
int idade; // válido
int _contador; // válido (underscore no início)
int 2valor; // inválido: começa com dígito
int valor final; // inválido: espaço
int float; // inválido: palavra reservadaBoas práticas e observações finais
Sempre declare variáveis no início do bloco onde serão usadas (padrão C89) ou no momento do primeiro uso (C99 em diante). Inicialize variáveis para evitar valores lixo. Use tipos adequados: int para inteiros, float/double para reais e char para caracteres. Lembre-se de que char também pode ser usado para armazenar pequenos números inteiros.
Outro ponto importante: o tamanho dos tipos pode variar entre arquiteturas. Para saber o tamanho exato, use o operador sizeof: printf("%zu", sizeof(int));. Isso ajuda a escrever código portável.
Referências
- C variable declaration - cppreference.com
- C data types - cppreference.com
- GNU C Manual - Variables
- Microsoft C - Variable Declarations
- POSIX sys/types.h
Exercícios
Declare uma variável do tipo
intchamadaanoe inicialize-a com o valor 2025. Em seguida, declare uma variávelfloatchamadaprecocom valor 49.99 (use o sufixo f). Escreva um programa que imprima ambas.✓ Resposta:#include <stdio.h> int main() { int ano = 2025; float preco = 49.99f; printf("Ano: %d\n", ano); printf("Preço: %.2f\n", preco); return 0; }Escreva um programa que declare duas variáveis
double(aeb) com valores 3.1415 e 2.71828, calcule a soma e imprima o resultado com 4 casas decimais.✓ Resposta:#include <stdio.h> int main() { double a = 3.1415; double b = 2.71828; double soma = a + b; printf("Soma: %.4f\n", soma); return 0; }Crie um programa que declare uma variável
charchamadaletracom o valor 'M'. Imprima o caractere e seu código ASCII (use %d).✓ Resposta:#include <stdio.h> int main() { char letra = 'M'; printf("Caractere: %c\n", letra); printf("Código ASCII: %d\n", letra); return 0; }Explique por que a declaração
int 1numero;é inválida em C. Dê um exemplo de nome de variável válido que comece com underscore.✓ Resposta:Em C, identificadores não podem começar com dígito. Portanto,
1numeroé inválido. Um nome válido começando com underscore:_valor(ex.:int _valor;).Escreva um programa que declare três variáveis do tipo
intem uma única linha, inicialize-as com 10, 20 e 30, e imprima a média (como double) delas.✓ Resposta:#include <stdio.h> int main() { int a = 10, b = 20, c = 30; double media = (a + b + c) / 3.0; printf("Média: %.2f\n", media); return 0; }