C++ Básicoc++variablestipos-de-datosbásico
Tipos de Datos y Variables
Conoce los tipos de datos fundamentales en C++ y cómo declarar variables
OOI Oaxaca9 de febrero de 20265 min read
¿Qué es una variable?
Una variable es un espacio en memoria que almacena un valor. Tiene:
- Un nombre (identificador)
- Un tipo (qué clase de dato almacena)
- Un valor (el dato en sí)
int edad = 15; // nombre: edad, tipo: int, valor: 15
Tipos de datos básicos
Enteros
| Tipo | Tamaño | Rango aproximado |
|---|---|---|
int | 4 bytes | -2×10⁹ a 2×10⁹ |
long long | 8 bytes | -9×10¹⁸ a 9×10¹⁸ |
unsigned int | 4 bytes | 0 a 4×10⁹ |
int a = 100;
long long b = 9000000000000000000LL; // Nota la LL al final
unsigned int c = 4000000000u;
Decimales
| Tipo | Tamaño | Precisión |
|---|---|---|
float | 4 bytes | ~7 dígitos |
double | 8 bytes | ~15 dígitos |
float pi_aprox = 3.14159f;
double pi = 3.141592653589793;
Caracteres
char letra = 'A';
char numero = '5'; // Es el carácter '5', no el número 5
Booleanos
bool esMayor = true;
bool esVacio = false;
Declaración de variables
Sintaxis básica
tipo nombre; // Declaración
tipo nombre = valor; // Declaración con inicialización
Ejemplos
int edad; // Declarada, valor indefinido
int puntos = 0; // Inicializada a 0
double promedio = 8.5;
char grado = 'A';
bool aprobado = true;
Múltiples variables
int a, b, c; // Tres enteros
int x = 1, y = 2, z = 3;
Reglas para nombres de variables
✅ Válidos:
- Empezar con letra o guion bajo
- Contener letras, números y guiones bajos
- Distinguen mayúsculas/minúsculas
int edad;
int _contador;
int miVariable2;
int MAXIMO;
❌ Inválidos:
- Empezar con número
- Contener espacios o caracteres especiales
- Usar palabras reservadas
int 2variable; // ❌ Empieza con número
int mi variable; // ❌ Tiene espacio
int int; // ❌ Palabra reservada
Constantes
Variables cuyo valor no cambia:
const int DIAS_SEMANA = 7;
const double PI = 3.14159265358979;
const int MOD = 1e9 + 7; // Común en competencias
Conversión de tipos (casting)
Implícita
C++ convierte automáticamente en algunos casos:
int a = 5;
double b = a; // b = 5.0 (int a double)
double x = 3.7;
int y = x; // y = 3 (se trunca, no redondea)
Explícita
Puedes forzar la conversión:
double resultado = (double) 5 / 2; // resultado = 2.5
int entero = (int) 3.99; // entero = 3
// Estilo moderno C++
double r = static_cast<double>(5) / 2;
Límites de los tipos
#include <climits>
#include <cfloat>
cout << "Máximo int: " << INT_MAX << endl; // 2147483647
cout << "Mínimo int: " << INT_MIN << endl; // -2147483648
cout << "Máximo long long: " << LLONG_MAX << endl;
Overflow
Cuando un valor excede el límite del tipo:
int a = 2000000000;
int b = 2000000000;
int c = a + b; // ¡OVERFLOW! El resultado no cabe en int
// Solución: usar long long
long long x = 2000000000;
long long y = 2000000000;
long long z = x + y; // Correcto: 4000000000
Ejemplo práctico: Área de un círculo
#include <iostream>
#include <cmath>
using namespace std;
int main() {
const double PI = 3.14159265358979;
double radio;
cout << "Ingresa el radio: ";
cin >> radio;
double area = PI * radio * radio;
// O usando pow: double area = PI * pow(radio, 2);
cout << "El área es: " << area << endl;
return 0;
}
Ejercicios de práctica
Ejercicio 1
Declara variables para almacenar: tu edad, tu estatura en metros, la inicial de tu nombre, y si eres estudiante.
Ver solución
int edad = 16;
double estatura = 1.70;
char inicial = 'J';
bool esEstudiante = true;
Ejercicio 2
¿Cuál es el resultado de este código?
int a = 7 / 2;
double b = 7 / 2;
double c = 7.0 / 2;
Ver solución
a = 3 (división entera)
b = 3.0 (7/2 se calcula como enteros primero)
c = 3.5 (uno es double, se hace división decimal)
Ejercicio 3
¿Por qué este código da un resultado incorrecto?
int segundos_en_anio = 365 * 24 * 60 * 60;
Ver solución
El resultado (31,536,000) sí cabe en un int, así que está correcto.
Pero si multiplicáramos más: 365 * 24 * 60 * 60 * 100 causaría overflow.
Solución segura:
long long segundos = 365LL * 24 * 60 * 60;
Siguiente paso
Aprende sobre Entrada y Salida de Datos para interactuar con el usuario.
