Da trilha de C++ Este conceito ainda não saiu como card do dia. ir para o card de hoje

C++ Fundamentos Básico

Variáveis e auto

Em C++, toda variável tem um tipo que define o que ela pode armazenar e quais operações são permitidas. Os tipos fundamentais incluem int, double, char, bool e suas variações. A palavra-chave auto permite que o compilador deduza o tipo a partir do valor inicial, tornando o código mais conciso e menos propenso a erros.

A inicialização com chaves ({}) é a forma recomendada de inicializar variáveis, pois evita conversões implícitas perigosas (narrowing) e inicializa consistentemente qualquer tipo. Também é possível usar const para declarar variáveis cujo valor não pode ser alterado após a inicialização, garantindo segurança e expressando intenção.

Combinar auto com const e inicialização com chaves é uma prática moderna e segura. Por exemplo, const auto pi = 3.14159; cria uma constante de tipo double deduzido, e auto x{42}; inicializa um int sem ambiguidades. Evite a inicialização com = quando quiser evitar conversões implícitas, e prefira {} sempre que possível.

Pontos-chave

  • Use auto para deduzir o tipo a partir do inicializador, mas sempre inicialize a variável.
  • Prefira inicialização com chaves {} para evitar conversões implícitas que perdem dados (narrowing).
  • const torna a variável imutável após a inicialização; combine com auto para constantes deduzidas.
  • Tipos fundamentais como int, double, char e bool têm tamanhos e comportamentos definidos pela implementação, mas auto ajuda a evitar suposições.
variaveis_auto.cpp
#include <iostream>

int main() {
    // Tipos fundamentais
    int idade = 30;
    double altura = 1.75;
    char inicial = 'A';
    bool ativo = true;

    // auto deduz o tipo do inicializador
    auto peso = 70.5;        // double
    auto letra = 'B';        // char
    auto ligado = false;     // bool

    // Inicialização com chaves (evita narrowing)
    int ano{2025};
    // int erro{2025.5};     // erro: narrowing conversion

    // const: valor imutável
    const auto pi = 3.14159;
    const int dias{7};

    std::cout << "Idade: " << idade << "\n";
    std::cout << "Altura: " << altura << "\n";
    std::cout << "Inicial: " << inicial << "\n";
    std::cout << "Ativo: " << ativo << "\n";
    std::cout << "Peso: " << peso << "\n";
    std::cout << "Letra: " << letra << "\n";
    std::cout << "Ligado: " << ligado << "\n";
    std::cout << "Ano: " << ano << "\n";
    std::cout << "Pi: " << pi << "\n";
    std::cout << "Dias: " << dias << "\n";
    return 0;
}

Exercícios

  1. 1
    Fácil

    Declarando e imprimindo variáveis

    Crie um programa que declare uma variável int chamada numero com valor 10 e uma variável double chamada decimal com valor 3.14. Imprima ambas no console, uma por linha, no formato numero: 10 e decimal: 3.14.

    Resolver
  2. 2
    Médio

    Usando auto e const

    Declare uma constante const auto chamada taxa com valor 0.05 e uma variável auto chamada montante com valor 1000.0. Calcule o valor final aplicando a taxa (montante * (1 + taxa)) e imprima o resultado com duas casas decimais usando std::fixed e std::setprecision(2). Inclua <iomanip>.

    Resolver
  3. 3
    Desafio

    Inicialização com chaves e narrowing

    Escreva um programa que demonstre a prevenção de narrowing usando inicialização com chaves. Declare int a{10};, double b{3.14}; e tente declarar int c{3.14}; (deve causar erro de compilação). Comente a linha problemática e, em vez disso, declare int d{static_cast<int>(3.14)};. Imprima a, b e d com rótulos. Explique em comentário por que int c{3.14} não compila.

    Resolver

Continue estudando