DMarlon Studio

Lección 2 · 2 de 20

Variables, tipos y auto · C++

Declare variables en C++ con int, double, char, bool y std::string, proteja valores con const y deje que auto deduzca el tipo.

C++ · Variables, tipos y auto en DMarlon Studio: el código del ejemplo y su salida en la terminal

En C++ cada variable tiene un tipo fijo, que se escribe delante del nombre: int para enteros (age), double para números con decimales (height), char para un solo carácter entre comillas simples ('A') y bool para verdadero o falso. Conviene darles siempre un valor inicial.

`std::string` guarda texto entre comillas dobles y necesita #include <string>. Al escribir un bool con std::cout sale 1 (verdadero) o 0 (falso); en la lección 7 verá cómo mostrar true y false.

Una variable puede cambiar de valor (age = age + 1), pero nunca de tipo. El compilador comprueba los tipos antes de ejecutar nada, y así detecta muchos errores pronto. Con `const`, el valor queda fijo: si intenta cambiar vat, el programa no compila.

`auto` deja que el compilador deduzca el tipo a partir del valor: 49.90 convierte price en un double y 3, a units en un int. Es cómodo, pero el tipo sigue siendo fijo. total mezcla los dos y el resultado es double.

`sizeof` dice cuántos bytes ocupa un tipo en memoria: en un ordenador actual, un int ocupa 4 y un double, 8.

Código · main.cpp

#include <iostream>#include <string>int main() {    // Each variable has a type, a name and (always, better) a value.    int age = 34;    double height = 1.78;    char grade = 'A';    bool member = true;    std::string name = "Lucia";    std::cout << name << " is " << age << " years old\n";    std::cout << "Height: " << height << " m, grade " << grade << '\n';    std::cout << "Member: " << member << '\n';  // a bool prints 1 or 0    // A variable can change its value, but never its type.    age = age + 1;    std::cout << "Next year: " << age << '\n';    // const: a value that must not change.    const double vat = 0.21;    // auto: the compiler deduces the type from the value.    auto price = 49.90;  // double    auto units = 3;      // int    auto total = price * units * (1 + vat);    std::cout << "Total with VAT: " << total << '\n';    // sizeof tells how many bytes a type takes in memory.    std::cout << "int: " << sizeof(int) << " bytes, double: " << sizeof(double) << " bytes\n";    return 0;}

Salida · c++ -std=c++17 main.cpp -o main && ./main

Lucia is 34 years old
Height: 1.78 m, grade A
Member: 1
Next year: 35
Total with VAT: 181.137
int: 4 bytes, double: 8 bytes

Para recordar

  • Tipo, nombre y valor: int age = 34;.
  • int, double, char, bool y std::string son los tipos básicos.
  • const impide cambiar un valor.
  • auto deduce el tipo del valor inicial.
  • Una variable no cambia nunca de tipo.

Ejercicio

Añada const int maxPlayers = 4; y auto players = 3;, escriba cuántas plazas quedan libres e intente luego asignar otro valor a maxPlayers para ver el error del compilador.