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.

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,boolystd::stringson los tipos básicos.constimpide cambiar un valor.autodeduce 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.