2. Variables, Tipos y la Memoria RAM 🧱
Aprende cómo C++ interactúa directamente con el hardware: cada variable es un casillero físico de bytes con una dirección hexadecimal en la memoria RAM.
1. El Modelo Mental: La Memoria RAM como Casilleros Numerados
En lenguajes como Python o JavaScript, sueles ver una variable como un nombre que almacena cualquier cosa mágica. En C++, una variable es una reserva física de espacio contiguo en la memoria RAM.
Toda variable tiene tres propiedades inseparables:
- 1. Tipo: Le dice al compilador cuántos casilleros de bytes reservar (ej. 4 bytes para
int). - 2. Nombre (Identificador): La etiqueta que tú usas en el código para referirte a ella.
- 3. Dirección de Memoria: El número hexadecimal exacto donde vive en la RAM (ej.
0x7ffee400).
CppMemoryStudiov1.0 RAM Inspector
Inspecciona cómo C++ distribuye variables, punteros y vectores en la memoria física.
🧠 Modelo Mental de Casilleros de RAM
Cada variable que declaras en C++ ocupa una cantidad fija de bytes contiguos en la memoria Stack. El nombre es tu etiqueta para humanos; la computadora solo reconoce la dirección hexadecimal física.
| Dirección RAM | Nombre | Tipo | sizeof | Valor Almacenado | Acción |
|---|---|---|---|---|---|
| 0x7ffee400 | vidas | int | 4 bytes | 3 | |
| 0x7ffee404 | puntaje | double | 8 bytes | 98.5 | |
| 0x7ffee40c | rango | char | 1 byte | 'S' | |
| 0x7ffee40d | activo | bool | 1 byte | true |
2. Tabla de Tipos Primitivos en C++
Conocer el tamaño de los tipos es indispensable para entender por qué C++ es tan eficiente:
| Tipo | Tamaño (Bytes) | Rango Aprox. / Propósito | Ejemplo |
|---|---|---|---|
| bool | 1 byte | Booleano: true (1) o false (0) | bool activo = true; |
| char | 1 byte | Un único carácter ASCII entre comillas simples | char letra = 'A'; |
| int | 4 bytes | Entero de 32 bits (-2 mil millones a +2 mil millones) | int vidas = 3; |
| double | 8 bytes | Decimal de doble precisión (15 dígitos decimales) | double precio = 19.99; |
| std::string | Dinámico | Cadenas de texto completas (requiere #include <string>) | std::string nombre = "Ana"; |
3. ⚠️ El Gran Peligro: "Basura de Memoria"
🚨 ¿Qué pasa si escribes `int puntaje;` sin darle valor?
A diferencia de Java o C# que ponen 0 por defecto, en C++ las variables locales quedan con"basura": sea lo que sea que estuviese grabado en ese casillero de la memoria RAM antes de que tu programa iniciara (un número al azar como -148392019).
✅ Regla de Oro: Inicializa SIEMPRE tus variables al momento de declararlas (int puntaje = 0;).
4. Constantes (const) y Deducción Automática (auto)
En C++ moderno, dos palabras clave hacen tu código mucho más seguro y limpio:
Protege el valor para que nadie pueda cambiarlo accidentalmente más adelante. Si alguien intenta hacer PI = 4.0;, el compilador bloquea el código con error.
Le pide al compilador que deduzca automáticamente el tipo en base al valor inicial. Ideal para tipos largos o iteradores.
Ejercicio Práctico: Boleta de Venta
Declara una constante con el impuesto IVA = 0.19, variables para el precioUnitario = 1500.0 y la cantidad = 4. Calcula el subtotal, el monto de IVA y el precio final a pagar, imprimiéndolos con formato en la consola.
Ver solución completa
Comprueba lo que Has Aprendido 🧠
Valida tu comprensión de variables, tipos primitivos y gestión de memoria en C++.


