Tipos de datos

Figura: al principio puede hacerse un poco complejo

Los tipos de datos de c++ no varian mucho respecto a c y son bastante evidentes, tal y como se puede apreciar en este codigo.

/**
* Tipos.cpp
* Programa para sacar el tamaño de cada tipo de datos
* Pello Xabier Altadill Izura 
*
* Compilado: g++ Tipos.cpp -o Tipos
*/

using namespace std;
#include <iostream>

int main () {

	// Sacamos el tamaño de cada tipo 
	cout << "El tamaño del int es:\t\t" << sizeof(int) << " bytes.\n";
	cout << "El tamaño del short es:\t" << sizeof(short) << " bytes.\n";
	cout << "El tamaño del long es:\t" << sizeof(long) << " bytes.\n";
	cout << "El tamaño del char es:\t\t" << sizeof(char) << " bytes.\n";
	cout << "El tamaño del float es:\t\t" << sizeof(float) << " bytes.\n";
	cout << "El tamaño del double es:\t" << sizeof(double) << " bytes.\n";

	// Sacamos por salida standar un mensaje
	cout << "Termino el programa\n";
	
	return 0;

}

Tambien se pueden definir constantes:

/**
* Constante.cpp
* Programa en el que definimos un valor constante
* Pello Xabier Altadill Izura 
*
* Compilado: g++ Constante.cpp -o Constante
*/

using namespace std;
#include <iostream>

#define MEMOLA 25

int main () {

	int y = 0;

	// Definimos el valor constante
	const float PI = 3.1416;
	
	cout << "Ten fe en el caos: " << PI << endl;
	
	// Sacamos por salida standar un mensaje
	cout << "\nTermino el programa : " << MEMOLA << endl;
	
	return 0;
}

Tabla 1. Tipos basicos de datos

TipoDescripcionModificadores
voidVacio 
charCaracter (8 bits)signed char(8 bits), unsigned char(8 bits)
intEntero simple (16 bits)signed int(16 bits), unsigned int(16 bits), long int (32 bits), unsigned long int(32 bits), signed long int(32 bits), short int(16 bits), unsigned short int(16 bits), signed short int(16 bit)
floatComa flotante (32 bits) 
doubleComa flotante mas grande (64 bits)long double (80 bits)
boolValor booleano: true o false 
wchar_tCaracteres anchos, para determinado juegos de caracteres 

Sin animo de extenderse mucho mas, en c++ tambien disponemos de struct, union y enum. Veamos unos ejemplos:

struct ficha {
	char nombre[50];
	int edad;
	char dni[9];

} ficha1, ficha2;

strcpy(ficha1.nombre,"Marujita Diaz");
ficha1.edad = 
Segmentation fault - value out of range! please use double type
core dumped

Las union son parecidos a los structs con la gran diferencia de que sus campos comparten el mismo espacio de memoria. Podemos meter elementos de distintos tipo y la union tendra el tamaño del elemento mas grande.

// cuando guardemos un valor en alguna de los campos, tambien se guardara
// en los demas. Podremos tratar el mismo dato de distintas formas.
union valor {
	int numero;
	double numerazo;
	char caracter[2];
} mi_valor;

Y mas adelante saldra algun ejemplo de enumeracion...