C++: Variáveis e Tipos de Dados Básicos

Última atualização: 2026-08-26

Na Aula 02 configuramos o ambiente de desenvolvimento e podemos compilar e executar programas.

Mas programas não podem apenas exibir texto fixo — eles precisam ser capazes de lembrar coisas e processar dados. É para isso que servem as variáveis.

Assim como na matemática, você precisa definir x, y, z primeiro; em programação, você deve "declarar" variáveis antes de armazenar dados.


1. O que é uma Variável?

(1) 1.1 Variáveis no Dia a Dia

Cenário da vida real Equivalente em programação
Você tem um nome, mas sua idade muda todo ano Variável: seu valor pode mudar
Você tem um número de identidade que nunca muda Constante: seu valor não pode mudar
Você tem uma xícara que pode conter água ou cola Variável: o tipo é fixo (xícara), o valor pode mudar (o que está dentro)

Uma variável é uma "caixa" na memória — você pode colocar coisas nela (atribuir valores) e tirar coisas (ler valores).

(2) 1.2 Por Que Precisamos de Variáveis?

Sem variáveis, programas só conseguem fazer coisas "rígidas":

CPP
// Sem variáveis, só é possível exibir texto fixo
std::cout << "Hello, World!" << std::endl;

Com variáveis, programas "ganham vida":

CPP
// Com variáveis, você pode lembrar a entrada do usuário
std::string name;
std::cin >> name;
std::cout << "Hello, " << name << "!" << std::endl;


2. Tipos de Dados Básicos

C++ é uma linguagem estaticamente tipada — toda variável deve ter seu tipo declarado primeiro, e o tipo não pode mudar.

(1) 2.1 Cinco Tipos de Dados Básicos

Tipo Palavra-chave Tamanho Faixa Analogia da Vida Real
Inteiro int 4 bytes -2.147.483.648 ~ 2.147.483.647 Número de pessoas, idade, ano
Ponto flutuante double 8 bytes Aprox. ±1,7 × 10³⁰⁸ Altura, peso, preço
Caractere char 1 byte -128 ~ 127 (ou 0 ~ 255) Letra única, nota (A/B/C)
Booleano bool 1 byte true ou false Se passou, se é adulto
String string Variável Qualquer comprimento Nome, endereço, uma frase

💡 Dica: string não é um "tipo básico" em C++, mas um tipo fornecido pela biblioteca padrão. Você precisa de #include <string> antes de usá-lo.

(2) 2.2 Declarando Variáveis

Sintaxe:

TEXT 📖 Somente leitura
Type variableName;

Exemplo:

CPP
int age; // Declara uma variável inteira chamada age
double price; // Declara uma variável de ponto flutuante chamada price
char grade; // Declara uma variável caractere chamada grade
bool isPassed; // Declara uma variável booleana chamada isPassed
std::string name; // Declara uma variável string chamada name

(3) 2.3 Declarando e Atribuindo ao Mesmo Tempo (Inicialização)

Sintaxe:

TEXT 📖 Somente leitura
Type variableName = value;

Exemplo:

CPP
int age = 25; // Declara age e atribui 25
double price = 19.99; // Declara price e atribui 19.99
char grade = 'A'; // Declara grade e atribui 'A' (nota: caracteres usam aspas simples)
bool isPassed = true; // Declara isPassed e atribui true
std::string name = "MOTO"; // Declara name e atribui "MOTO" (nota: strings usam aspas duplas)

💡 Dica: C++11 introduziu um estilo de inicialização mais moderno (inicialização uniforme):

CPP
int age = {25}; // Inicialização uniforme (recomendado)
double price{19.99}; // Pode omitir o sinal de igual (recomendado)

Este estilo previne conversões com perda (por exemplo, atribuir 3.14 a int causará um erro em vez de truncar silenciosamente).



3. Usando Variáveis

▶ Exemplo 1: Calcular a Área de um Círculo (Dificuldade ⭐)

CPP
#include <iostream>

int main() {
 const double PI = 3.14159; // Constante (coberto mais tarde)
 
 double radius;
 std::cout << "Please enter the radius of the circle:";
 std::cin >> radius;
 
 double area = PI * radius * radius;
 std::cout << "The area of the circle is:" << area << std::endl;
 
 return 0;
}
▶ Experimente

Saída:

TEXT 📖 Somente leitura
Please enter the radius of the circle:
The area of the circle is:

Resultado da execução:

TEXT 📖 Somente leitura
Please enter the radius of the circle:5
The area of the circle is:78.5397

Análise do código:

  1. const double PI = 3.14159; — Declara uma constante PI cujo valor não pode mudar
  2. double radius; — Declara uma variável de ponto flutuante radius
  3. std::cin >> radius; — Lê a entrada do usuário pelo teclado e armazena em radius
  4. double area = PI * radius * radius; — Calcula a área e armazena o resultado em area
  5. std::cout << ... — Exibe o resultado


4. Regras de Nomenclatura de Variáveis

C++ tem regras rigorosas para nomes de variáveis:

(1) 4.1 Regras Obrigatórias (Deve Seguir)

Regra Exemplo Válido Exemplo Inválido
Só pode conter letras, dígitos e sublinhados my_age, score2 my-age (hífens não são permitidos)
Não pode começar com um dígito age2 2age
Diferencia maiúsculas de minúsculas age e Age são variáveis diferentes
Não pode ser uma palavra-chave int myInt = 5; int int = 5; (int é uma palavra-chave)

Lista de Palavras-chave C++ (parcial):

TEXT 📖 Somente leitura
int, double, char, bool, string, if, else, for, while, 
return, class, public, private, new, delete, ...

(2) 4.2 Regras Recomendadas (Fortemente Recomendadas)

O compilador não impõe essas regras, mas segui-las torna seu código mais legível:

Regra Estilo Recomendado Não Recomendado
Nomes de variáveis devem ser significativos studentAge a, x1
Use camelCase para nomes compostos studentAge, totalScore student_age, total_score
Constantes devem ser ALL_CAPS const int MAX_SIZE = 100; const int maxSize = 100;

💡 Dica: Diferentes equipes podem ter convenções de nomenclatura diferentes. Este tutorial usa camelCase.



5. Constantes (const)

Alguns valores nunca devem mudar, como π, o número de dias em um ano, ou o comprimento máximo de um array.

(1) 5.1 Por Que Precisamos de Constantes?

Sem constantes (exemplo ruim):

CPP
double circumference = 3.14159 * diameter; // Este 3.14159 é um "número mágico"
double area = 3.14159 * radius * radius; // Se π estiver errado, você tem que corrigir em dois lugares

Com constantes (exemplo bom):

TEXT 📖 Somente leitura
const double PI = 3.14159;
double circumference = PI * diameter; // Claro e fácil de mudar
double area = PI * radius * radius;

(2) 5.2 Como Declarar Constantes

Sintaxe:

CPP
const Type CONST_NAME = value;

Exemplo:

CPP
const int DAYS_PER_WEEK = 7;
const double PI = 3.14159;
const std::string SCHOOL_NAME = "Meijia Vocational College";

💡 Dica: Nomes de constantes são tipicamente ALL_CAPS com sublinhados separando palavras — esta é uma convenção de C++.

(3) 5.3 Características das Constantes

  1. Devem ser inicializadas (devem receber um valor quando declaradas)
CPP
const int MAX_SIZE; // ❌ Erro: constante deve ser inicializada
  1. Não podem ser modificadas
CPP
const int MAX_SIZE = 100;
MAX_SIZE = 200; // ❌ Erro: não pode modificar o valor de uma constante


6. Entrada e Saída (cin e cout Avançado)

(1) 6.1 Lendo Múltiplas Variáveis de Uma Vez

cin pode ler múltiplas variáveis em uma instrução, separadas por espaços ou novas linhas:

CPP
#include <iostream>
#include <string>

int main() {
 int age;
 std::string name;
 
 std::cout << "Please enter your name and age(separated by spaces):";
 std::cin >> name >> age; // Lê duas variáveis de uma vez
 
 std::cout << "Hello," << name << "! You are " << age << " years old。" << std::endl;
 return 0;
}

Resultado da execução:

TEXT 📖 Somente leitura
Please enter your name and age(separated by spaces):MOTO 35
Hello,MOTO! You are 35 years old。

(2) 6.2 Misturando cin e cout

CPP
#include <iostream>
#include <string>

int main() {
 std::string name;
 int age;
 double height;
 
 std::cout << "Please enter your name: ";
 std::cin >> name;
 
 std::cout << "Please enter your age: ";
 std::cin >> age;
 
 std::cout << "Please enter your height (meters): ";
 std::cin >> height;
 
 std::cout << "========== Personal Info ==========" << std::endl;
 std::cout << "Name: " << name << std::endl;
 std::cout << "Age: " << age << " years old" << std::endl;
 std::cout << "Height: " << height << " meters" << std::endl;
 
 return 0;
}


7. Erros Comuns e Depuração

(1) 7.1 Esquecer de Inicializar uma Variável

Exemplo de erro:

CPP
#include <iostream>

int main() {
 int x; // Declarou x mas não atribuiu um valor
 std::cout << x << std::endl; // ❌ O valor de x é "lixo" — indefinido
 return 0;
}

Abordagem correta:

CPP
int x = 0; // Inicializar ao declarar
std::cout << x << std::endl; // ✅ Exibe 0

💡 Dica: Compiladores C++ modernos irão alertar sobre o uso de variáveis não inicializadas, mas não dependa do compilador — desenvolva o bom hábito de sempre inicializar.

(2) 7.2 Incompatibilidade de Tipos

Exemplo de erro:

CPP
int age;
std::cin >> age;
// Se o usuário digitar "abc", age permanecerá inalterada (ou pior)

Abordagem correta (aprenderemos como validar entrada mais tarde):

CPP
int age;
std::cin >> age;
if (std::cin.fail()) {
 std::cout << "InputError!Please enter a number." << std::endl;
}

(Este tópico será coberto em detalhes na Aula 08 — por enquanto, apenas esteja ciente do problema.)



8. Prática: Calculadora Simples

▶ Exemplo 2: Calculadora de Adição, Subtração, Multiplicação e Divisão (Dificuldade ⭐⭐)

CPP
#include <iostream>

int main() {
 double num1, num2;
 char op;
 
 std::cout << "Please enter the first number: ";
 std::cin >> num1;
 
 std::cout << "Please enter an operator (+ - * /): ";
 std::cin >> op;
 
 std::cout << "Please enter the second number: ";
 std::cin >> num2;
 
 double result;
 if (op == '+') {
 result = num1 + num2;
 } else if (op == '-') {
 result = num1 - num2;
 } else if (op == '*') {
 result = num1 * num2;
 } else if (op == '/') {
 if (num2 != 0) {
 result = num1 / num2;
 } else {
 std::cout << "Error: Divisor cannot be 0!" << std::endl;
 return 1; // Saída anormal
 }
 } else {
 std::cout << "Error: Unsupported operator!" << std::endl;
 return 1;
 }
 
 std::cout << "Result: " << num1 << " " << op << " " << num2 << " = " << result << std::endl;
 return 0;
}
▶ Experimente

Saída:

TEXT 📖 Somente leitura
Please enter the first number: 
Please enter an operator (+ - * /): 
Please enter the second number: 
Error: Divisor cannot be 0!
Error: Unsupported operator!
Result:    = 

Resultado da execução:

TEXT 📖 Somente leitura
Please enter the first number: 10
Please enter an operator (+ - * /): *
Please enter the second number: 5
Result: 10 * 5 = 50

💡 Dica: Este programa usa if-else (coberto em detalhes na Aula 06) — você pode copiá-lo por enquanto e entender a abordagem geral.


❓ Perguntas Frequentes

P: Qual a diferença entre int e double? Quando usar qual? R: int armazena números inteiros (ex: 25, -3), double armazena números de ponto flutuante (ex: 19.99, 3.14). Regra prática: contagem/idade/anos → int; preço/altura/médias → double.

P: Por que char usa aspas simples e string usa aspas duplas? R: char é um caractere único, usando aspas simples (ex: 'A'); string são múltiplos caracteres, usando aspas duplas (ex: "Hello"). Note que "A" e 'A' são tipos completamente diferentes.

P: Qual a diferença entre const e #define? R: const é uma palavra-chave C++ com verificação de tipo — mais segura e recomendada (ex: const double PI = 3.14159;). #define é uma macro estilo C sem verificação de tipo — não recomendada.

P: Nomes de variáveis podem usar caracteres chineses? R: Teoricamente sim (C++11 suporta identificadores Unicode), mas é fortemente desencorajado — suporte entre compiladores varia e o código se torna difícil de manter. Não escreva código como int Age = 25;.


▶ Exemplo 3: Conversão de Tipos (Dificuldade ⭐)

CPP
#include <iostream>

int main() {
    int a = 5;
    double b = 3.7;

    // Conversão implícita
    double c = a + b;
    std::cout << "Implicit conversion: " << c << std::endl;

    // Conversão explícita (estilo C)
    int d = (int)b;
    std::cout << "C-style cast: " << d << std::endl;

    // Conversão estilo C++
    int e = static_cast<int>(b);
    std::cout << "C++-style cast: " << e << std::endl;

    return 0;
}
▶ Experimente

Saída:

TEXT 📖 Somente leitura
Implicit conversion: 
C-style cast: 
C++-style cast: 
💡 Dica: static_cast<T>() é o método de conversão de tipo recomendado em C++, mais seguro que o estilo C (T).



📖 Resumo

📝 Exercícios

  1. Básico (Dificuldade ⭐): Escreva um programa que declare três variáveis: name (string), age (inteiro), score (ponto flutuante), atribua valores a cada uma e as exiba.
TEXT 📖 Somente leitura
My name is Alice,this year 20 years old,FinalScore 92.5 points。
  1. Intermediário (Dificuldade ⭐⭐): Escreva um programa que permita ao usuário inserir o raio de um círculo, depois calcule e exiba a circunferência e a área (circunferência = 2πr, área = πr²).

  2. Defina π como uma constante (3.14159)

  3. Exiba com 2 casas decimais (dica: use std::fixed e std::setprecision, requer #include <iomanip>)

  4. Desafio (Dificuldade ⭐⭐⭐): Escreva um programa que converta Fahrenheit para Celsius:

  5. Deixe o usuário inserir uma temperatura em Fahrenheit

  6. Use a fórmula C = (F - 32) × 5/9 para calcular Celsius

  7. Exiba o resultado (1 casa decimal)

  8. Exemplo: entrada 68, saída "68°F = 20.0°C"

  1. Tipos básicos de C++: int (inteiro), double (ponto flutuante), char (caractere), bool (booleano), string (string)

9. 🚀 Próximo Passo

Agora que você aprendeu sobre variáveis e tipos de dados, a seguir vamos aprender os operadores do C++ (Aula 04) — permitindo que variáveis realizem aritmética, comparações e julgamentos lógicos.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%