Tecnologia

O que é variavel? Guia completo com declaração em linguagens

ResumoUma variável é um espaço na memória do computador que armazena um valor, identificado por um nome. Em programação, declarar uma variável reserva esse espaço e define seu tipo (implícito ou explícito) e valor inicial. Cada linguagem possui sintaxe própria, mas o conceito de nome, tipo e valor é universal.

Uma variável é um espaço na memória do computador que armazena um valor. Em programação, declarar uma variável significa reservar esse espaço e dar um nome a ele. Cada linguagem tem sua sintaxe, mas o conceito é universal: nome, tipo (implícito ou explícito) e valor. Este guia mo

Larissa Quintela
O que é variavel? Guia completo com declaração em linguagens

O que é variavel? Guia completo com declaração em linguagens — Foto: Reprodução / Bombou na Web

O que é uma variável? A pergunta certa não é o que ela é, mas como ela resolve um problema concreto: guardar um valor temporário para reutilizar. Uma variável é um espaço nomeado na memória RAM que armazena um dado, um número, um texto, uma data, e permite que o programa acesse e modifique esse dado durante a execução. Declarar uma variável é o ato de criar esse espaço e dar a ele um nome, seguindo as regras da linguagem. Só que cada linguagem faz isso de um jeito, e a diferença não é só sintática: envolve como a memória é alocada, se o tipo é fixo ou flexível, e quais erros você pode evitar. Este guia cobre o conceito, a declaração em cinco linguagens populares e as pegadinhas que todo iniciante enfrenta.

O que é uma variável na programação?

Uma variável é um contêiner lógico na memória do computador. O nome "variável" vem do fato de que o valor armazenado pode variar ao longo da execução do programa. Na prática, você reserva um endereço de memória, associa a ele um identificador (o nome da variável) e define que tipo de dado ele pode guardar. O compilador ou interpretador cuida do resto: alocar espaço, garantir que o tipo seja respeitado e liberar a memória quando a variável sai de escopo.

A promessa é simples, mas a entrega depende da linguagem. Em linguagens de tipagem estática (Java, C), você declara o tipo na hora e o compilador verifica se o valor atribuído é compatível. Em linguagens de tipagem dinâmica (Python, JavaScript), o tipo é inferido pelo valor, o que dá flexibilidade, mas abre brecha para erros em tempo de execução. A pergunta certa é outra: você quer segurança em tempo de compilação ou agilidade para prototipar?

Como declarar uma variável em Python?

Python não exige declaração explícita de tipo. Basta escrever o nome da variável, o operador de atribuição (=) e o valor. O interpretador infere o tipo automaticamente.

Exemplo: nome = "Maria" idade = 30 preco = 49.99 ativo = True

Python permite reatribuir a mesma variável com outro tipo, mas isso é uma faca de dois gumes. Se você espera que idade seja sempre um inteiro e acidentalmente atribui uma string, o erro aparece só quando o programa tenta somar. A dica prática: use nomes descritivos e, em projetos maiores, considere type hints (idade: int = 30), eles não impedem a atribuição errada em runtime, mas ajudam ferramentas de análise estática.

Como declarar uma variável em JavaScript?

JavaScript oferece três palavras-chave: var, let e const. Cada uma controla escopo e reatribuição de forma diferente.

  • var: escopo de função, pode ser redeclarada. É o jeito antigo, hoje evitado por causar confusão com hoisting.
  • let: escopo de bloco, não pode ser redeclarada no mesmo escopo. É o padrão moderno para variáveis que mudam.
  • const: escopo de bloco, não pode ser reatribuída. Ideal para valores fixos como URLs de API ou configurações.

Exemplo: let nome = "João"; const PI = 3.14159; var cidade = "São Paulo"; // evitar

JavaScript também é de tipagem dinâmica. Uma variável declarada com let pode começar como número e depois receber uma string. O problema: let valor = "10" + 5 resulta em "105" (concatenação), não em 15. A promessa de flexibilidade vira armadilha se você não controla os tipos com funções como Number() ou parseInt().

Como declarar uma variável em Java?

Java exige que você declare o tipo antes do nome da variável. A tipagem é estática e forte: uma vez declarada como int, ela só aceita inteiros.

Exemplo: String nome = "Ana"; int idade = 25; double salario = 4500.00; boolean ativo = true;

Java também permite declaração sem inicialização imediata: int contador;, mas a variável não pode ser usada até receber um valor. O compilador impede o uso de variáveis não inicializadas, o que elimina uma classe inteira de bugs.

A limitação: o tipo é fixo. Se você precisa armazenar um número que pode ser inteiro ou decimal, precisa declarar como double ou usar classes wrapper (Integer, Double). A vantagem é a previsibilidade: o programa não quebra no meio da execução por causa de um tipo inesperado.

Como declarar uma variável em C?

C é a linguagem que mais se aproxima do hardware. Declarar uma variável em C significa reservar um número fixo de bytes na memória, e o tipo define exatamente quantos bytes.

Exemplo: int idade = 30; float preco = 49.99f; char letra = 'A'; char nome[20] = "Carlos";

C não inicializa variáveis automaticamente. Se você declarar int x; e usar x sem atribuir valor, ele conterá lixo de memória, um número aleatório. Isso é uma das maiores fontes de bugs em C. A dica: sempre inicialize na declaração.

Outra diferença: strings em C são arrays de caracteres, não um tipo nativo. Declarar char nome[20] reserva 20 bytes, e se o texto ultrapassar esse limite, ocorre estouro de buffer. A promessa de controle total sobre a memória vem com a responsabilidade de gerenciar limites manualmente.

Como declarar uma variável em C++?

C++ herda a sintaxe de C, mas adiciona o operador auto para inferência de tipo (a partir do C++11) e o conceito de referências.

Exemplo com tipo explícito: int idade = 30; std::string nome = "Daniel"; double altura = 1.85;

Exemplo com auto: auto idade = 30; // int auto nome = "Daniel"; // const char* auto altura = 1.85; // double

Cuidado com auto: ele infere o tipo exato do valor. Se você escreve auto x = 3.14;, x é double, não float. Se quer float, precisa escrever auto x = 3.14f;. A inferência é conveniente, mas pode esconder tipos inesperados.

C++ também oferece referências (int& ref = idade;), que são apelidos para uma variável existente. Diferente de ponteiros, referências não podem ser nulas e não mudam de alvo. É um recurso poderoso para evitar cópias desnecessárias em funções, mas exige cuidado: uma referência para uma variável local de uma função que já retornou vira uma dangling reference (referência solta).

Qual a diferença entre declaração e atribuição?

Declaração é o ato de criar a variável, reservando espaço na memória. Atribuição é colocar um valor nesse espaço. Em algumas linguagens, os dois podem acontecer na mesma linha.

  • Em Java: int x; (declaração), x = 10; (atribuição), int y = 10; (declaração + atribuição).
  • Em Python: x = 10 já faz declaração e atribuição juntos, porque não existe declaração sem valor.
  • Em JavaScript com let: let x; declara sem valor (undefined), x = 10; atribui.

A confusão comum: em linguagens de tipagem dinâmica, a declaração acontece no momento da primeira atribuição. Se você tenta usar a variável antes, recebe um erro de referência (ReferenceError em JavaScript, NameError em Python).

FAQ

O que acontece se eu não declarar uma variável?

Depende da linguagem. Em Python e JavaScript, se você atribuir um valor a um nome que não foi declarado com let, const ou var, a variável é criada automaticamente no escopo global, o que pode causar efeitos colaterais. Em Java e C, o código nem compila. Em C++, o compilador também exige declaração.

Variável e constante são a mesma coisa?

Não. Uma variável pode ter seu valor alterado após a declaração. Uma constante, uma vez definida, não pode ser reatribuída. Em JavaScript usa-se const, em Java final, em C const, em Python não há constante nativa, por convenção, nomes em maiúsculas indicam que o valor não deve mudar.

Posso declarar duas variáveis com o mesmo nome?

No mesmo escopo, não. Em Java e C, o compilador acusa erro. Em JavaScript com let, também. Em Python, a segunda declaração sobrescreve a primeira. Em C, se você declarar int x; e depois float x; no mesmo escopo, o compilador reclama de conflito de tipo. Escopos diferentes (por exemplo, dentro de uma função e fora dela) podem ter nomes iguais sem conflito.

Qual a diferença entre tipagem estática e dinâmica?

Na tipagem estática (Java, C, C++), o tipo é verificado em tempo de compilação. Você precisa declarar o tipo, e uma variável não muda de tipo. Na tipagem dinâmica (Python, JavaScript), o tipo é verificado em tempo de execução e pode mudar se você reatribuir. A estática pega erros mais cedo; a dinâmica dá mais flexibilidade, mas exige testes mais rigorosos.

O que é escopo de uma variável?

Escopo define onde a variável pode ser acessada. Variáveis declaradas dentro de uma função (escopo local) não são visíveis fora dela. Variáveis declaradas fora de funções (escopo global) são acessíveis em todo o programa. Em JavaScript, let e const têm escopo de bloco (if, for), enquanto var tem escopo de função. Em C e Java, o escopo é delimitado por chaves {}.

Como escolher o nome de uma variável?

Use nomes descritivos, em camelCase (JavaScript, Java) ou snake_case (Python, C). Evite abreviações obscuras (v1, tmp). O nome deve indicar o propósito: idadeDoUsuario é melhor que i. Em C, nomes muito longos podem ser truncados em alguns compiladores antigos, mas hoje isso não é mais problema. A regra de ouro: outro programador (ou você daqui a seis meses) deve entender o que a variável armazena sem precisar ler o código ao redor.

Larissa Quintela

Editoria Tecnologia

Larissa Quintela cobre o setor de meios de pagamento e crédito no Bombou na Web. Análises técnicas, sem viés comercial.