C++ es un lenguaje fuertemente tipado y orientado a objetos. Por tanto, los tipos de datos determinan las características y el comportamiento de las variables que se manipulan a lo largo de la ejecución de un programa.
Estos tipos de datos son proporcionados por el lenguaje y están diseñados para manejar valores individuales (como números enteros, números de punto flotante, caracteres y valores booleanos).
Los detalles de la implementación (como el tamaño) de cada tipo dependen del compilador e incluso del sistema operativo.
Tipo Bool
El tipo bool en C++ es un tipo de datos utilizado para almacenar valores lógicos (es decir, verdadero o falso).
Tipo | Bytes | Rango |
---|---|---|
bool | 1 | true / false |
El tipo bool se declara usando la palabra clave bool
y se puede asignar un valor de true
o “false”, por ejemplo:
bool verdadero = true;
bool falso = false;
El tipo bool es muy útil para tomar decisiones en un programa y para realizar comparaciones
Tipo Char
El tipo char en C++ es un tipo de datos utilizado para almacenar caracteres individuales (como letras, números y símbolos).
Tipo | Bytes | Rango |
---|---|---|
char | 1 |
El tipo char se declara usando la palabra clave char
y se puede asignar un valor entre comillas simples, por ejemplo:
char letra = 'A';
El tipo char también se puede utilizar para almacenar valores ASCII, que son códigos numéricos asignados a cada carácter en el teclado
Enteros
Los tipos de números enteros en C++ se utilizan para almacenar números sin parte decimal. Incluyen varias variantes que difieren en tamaño y signo.
Tipo | Bytes | Rango |
---|---|---|
signed char | 1 | -128 a 127 |
unsigned char | 1 | 0 a 255 |
short | 2 | -2^15 a 2^15 - 1 |
unsigned short | 2 | 0 a 2^16 - 1 |
int | 4 | -2^31 a 2^31 - 1 |
unsigned int | 4 | 0 a 2^32 - 1 |
long int | 4/8 | |
long unsigned int | 4/8 | |
long long int | 8 | -2^63 a 2^63 - 1 |
long long unsigned int | 8 | 0 a 2^64 - 1 |
Ejemplo:
int numeroEntero = 42;
unsigned int numeroEnteroPositivo = 42U;
2^15 = 32.768 2^16 = 65.536 2^31 = 2.147.483.648 2^32 = 4.294.967.296 2^63 = 9.223.372.036.854.775.808 2^64 = 18.446.744.073.709.551.616
Números de Punto Flotante
Los tipos de datos de punto flotante se utilizan para almacenar números con partes decimales.
Tipo | Tamaño (bytes) | Precisión | Rango Mínimo | Rango Máximo |
---|---|---|---|---|
float | 4 | Simple precisión | ±1.5 x 10^-45 | ±3.4 x 10^38 |
double | 8 | Doble precisión | ±5.0 x 10^-324 | ±1.7 x 10^308 |
long double | 16 | Alta precisión | ±3.4 x 10^-4932 | ±1.1 x 10^4932 |
Ejemplo:
float numeroFloat = 10.5f; // 'f' es opcional en C++
double numeroDouble = 20.99;
long double numeroLongDouble = 100.50L; // 'L' es opcional en C++
Estructuras
Las struct en C++ permiten la creación de tipos de agrupación de valor definidos por el usuario.
Ejemplo:
struct Punto {
int X;
int Y;
};
Punto punto = {10, 20};
Enumeraciones
Las enum permiten la creación de un conjunto de constantes relacionadas bajo un nombre de tipo específico.
Ejemplo:
enum Dias {
Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo
};
Dias hoy = Lunes;
Arrays
Los arrays permiten almacenar una colección de elementos del mismo tipo en una única variable.
Ejemplo de array:
int numeros[] = {1, 2, 3, 4, 5};
Los arrays en C++ tienen un tamaño fijo y el tamaño debe ser conocido en tiempo de compilación.
Puedes acceder a los elementos usando índices, comenzando desde 0.
Tipos de Referencia
Los tipos de referencia en C++ incluyen punteros y referencias. Estos tipos permiten manipular la memoria y referirse a otras variables.
Punteros
Los punteros almacenan direcciones de memoria y permiten manipular directamente la memoria.
Ejemplo de puntero:
int numero = 10;
int* puntero = № // Puntero que almacena la dirección de 'numero'
Referencias
Las referencias son alias para otras variables.
Ejemplo de referencia:
int numero = 10;
int& referencia = numero; // Referencia a 'numero'
Cadenas de Texto (std::string
)
Las cadenas en C++ son manejadas a través de la clase std::string
, que proporciona una manera conveniente de trabajar con secuencias de caracteres.
Ejemplo de uso de std::string
:
#include <string>
std::string saludo = "Hola, Mundo!";
Uniones
Las uniones permiten almacenar diferentes tipos de datos en el mismo espacio de memoria. Solo se puede utilizar uno de los miembros de la unión a la vez.
union Datos {
int entero;
float flotante;
char caracter;
};
Datos d;
d.entero = 10;
d.flotante = 20.5f; // El valor de entero ya no es válido
Clases
Las clases son son agrupaciones que permiten encapsular datos y métodos (son la base de la programación orientada a objetos en C++)
class Coche {
public:
std::string marca;
int año;
void arrancar() {
std::cout << "El coche está en marcha." << std::endl;
}
};
Coche miCoche;
miCoche.marca = "Toyota";
miCoche.año = 2024;
miCoche.arrancar();