Variables i Tipus

En el codi vist anteriorment únicament escrivíem un text per pantalla. Tot i així, si volem aconseguir un codi que permeti realitzar tasques més útils, necessitarem emmagatzemar dades de diferents tipus. És aquí quan entren en joc les variables.

Una variable no és més que una dada emmagatzemada que utilitza el nostre codi. Per exemple, si volguéssim emmagatzemar l'edat d'una persona podríem definir la variable int edat;. Més endavant veurem en detall com es defineixen les variables en funció del tipus de dada.

Cada variable ha de ser d'un tipus que s'especifica al declarar-la. Això definirà quina és la mida que ocuparà cada variable (no ocupa el mateix un caràcter que un nombre enter), així com la forma en que la màquina l'haurà d'interpretar (en el cas dels caràcters, es representen seguint el codi ASCII).

Tipus de dades bàsics

int - Nombres Enters
Els clàssics nombres enters. Números tant positius com negatius que no tenen decimals.
Tenen una mida de 4 bytes (32 bits).
Pot emmagatzemar valors del -2147483648 al 2147483647.
Exemple: 852
float - Nombres de Punt (o Coma) Flotant
Nombres tant positius com negatius amb decimals (tot i que també poden representar els mateixos nombres que els enters).
Suficient per emmagatzemar 7 decimals.
Tenen una mida de 4 bytes (32 bits).
Exemple: 48.6857
double - Nombres de Precisió Doble
Exactament el mateix que float però amb capacitat per emmagatzemar més xifres, i per tant, amb més precisió.
Suficient per emmagatzemar 15 decimals.
Tenen una mida de 8 byte (64 bits).
Exemple: 212.345678909878675
char - Caràcters
Inclou els diferents caràcters que es poden representar utilitzant ASCII.
Tenen una mida de 1 byte (8 bits).
Pot emmagatzemar valors del -128 al 127 o del 0 al 255.
Exemple: 'g'
bool - Booleà
Variable que només pot contenir els valors True (1) o False (0).
Tenen una mida de 1 byte (8 bits).
Exemple: True

Altres tipus de dades

void - Buit
Literalment el buit. Realment NO és un tipus, sinó una paraula reservada. Només s'utilitza per definir funcions sense cap tipus de retorn o similars, mai per definir una variable.
No té una mida com a tal.
Exemple: *res*
string - Cadena (de text)
Tot i no ser un tipus per defecte (cal afegir #include<string>), és un dels tipus més utilitzats. Permet emmagatzemar cadenes de text (també amb espais).
La mida depèn del número de caràcters de cada cadena.
Exemple: "Hola que tal"
Les mides poden variar segons l'arquitectura i el compilador. Les que s'indiquen aquí són segons i386 (GCC).

Si vols més informació sobre els tipus de dades fes clic aquí.

Definició de variables

Per definir una variable només hem d'indicar el tipus de dades que contindrà i a continuació donar-li un nom únic, que no es repeteixi enlloc. Molt important posar el punt i coma al final!

A continuació es defineixen diverses variables per fer un hipotètic programa:


					#include<string>
					
					using namespace std;
					
					int main(){
					
						string nom;
						string cognoms;
						int edat;
						string data_naixement;
					
						return 0;
					}
				
				

Tal i com es pot observar en els exemples, els noms de les variables han de complir uns requisits: poden contenir lletres i números, poden contenir alguns símbols com la barra baixa, distingeixen entre minúscules i majúscules, no poden contenir espais.

També és possible assignar valors a les variables al mateix temps que es defineixen. En cas de no fer-ho, contindran un valor indefinit, o depenent del tipus, s'inicialitzaran amb un valor predefinit. A continuació es mostra l'exemple anterior, però inicialitzant les variables amb valors:


					#include<string>
					
					using namespace std;
					
					int main(){
					
						string nom = "David";
						string cognoms = "Romero Perseus";
						int edat = 20;
						string data_naixement = "28/06/2002";
					
						return 0;
					}