Les types
Un type caractérise les valeurs que peut prendre une donnée.
Selon le langage informatique on utilisera généralement :
- le typage statique : les vérifications de type sont faites à la compilation : C, C++, Pascal...
- le typage dynamique : les vérifications sont faites à l'exécution : Python, PHP, javascript.....
Un bon choix de type permet d'optimiser un programme mais aussi d'éviter des dysfonctionnements parfois tragiques :
Le vol d'Ariane 5 a échoué parce que le type de la variable définissant l'accélération était mauvais, ce qui a provoqué un erreur de dépassement d'entier. (Sources Wikipedia).
Le types classiques en C/C++
Type |
Explication |
Taille (en octets) |
Plage de valeurs |
bool |
booléen (existe en C++ mais pas en C) |
true ou false |
|
char |
caractère |
1 |
-128 à +127 |
unsigned char |
caractère non signé |
1 |
0 à 255 |
int |
Entier |
2 (processeur 16bits) |
-32768 à 32767 |
unsigned int |
Entier non signé |
2 (processeur 16 bits) |
0 à 65535 |
long int |
Entier long |
4 |
-2147483648 à 2147483647 |
unsigned long int |
Entier long non signé |
4 |
0 à 4294967295 |
float |
flottant (à virgule) |
4 |
3.4*10-38 à 3.4*1038 |
double |
double flottant |
8 |
1.7*10-308 à 1.7*10308 |
long double |
flottant double long |
10 |
3.4*10-4932 à 3.4*104932 |
Il est possible de créer d'autres types en utilisant des structures de données.
Utilisation
En C, toute déclaration de variable ou de fonction commence par le type.
Exemple
//Déclaration d'un caractère
char retour;
//Dans une itération
for (int i=0 i<10;i++)....
//Dans une fonction
int maximum()
{
....
}
Remarques
Char :
Un type char permet de stocker la valeur ASCII d'un caractère
char caractere;
caractere = 66;
est identique à
caractere = 'B';
Chaine de caractères
Le type STRING n'existe pas en C. Mais une chaîne de caractère est un tableau de caractère qui se termine par '\0' pour indiquer la fin de la chaîne.
Ainsi :
char machaine[8];
machaine[0]='B';
machaine[1]='o';
machaine[2]='n';
machaine[3]='j';
machaine[4]='o';
machaine[5]='u';
machaine[6]='r';
machaine[0]='\0';
Une autre manière consiste à ne pas définir la taille du tableau :
char machaine[];
machaine="Bonjour";
Remarque : un caractère en encadré par des guillemets simple et un mot par des guillemets doubles.
Conversion de type :
C étant très stricte, il n'est pas possible d'associer deux types différents... Un int n'est pas un char.
Des fonctions de conversion existent (en particulier dans les bibliothèques de QT Creator).