Types de données
Les valeurs des variables sont stockés quelque part dans un endroit non précisé dans la mémoire de l'ordinateur sous forme de zéros et de uns. Notre programme n'a pas besoin de connaitre l'emplacement exacte où une variable est stockée, il peut simplement se référer à elle par son nom. La seul chose que le programme doit être conscient est le type de données de la variable stockées. Il y a une différence entre stocker un entier simple ou stocker une lettre ou un grand nombre à virgule, même si ils sont tous représentés par des zéros et des uns ils ne sont pas interprétés de la même manière, et dans de nombreux cas, ils n'occupent pas le même quantité de mémoire.
Les type de données commun sont des type de base venant directement du langage qui représente les unités de stockage pris en charge nativement par la plupart des systèmes. Ils peuvent principalement être classés en :
Types de caractères : Ils peuvent représenter un caractère unique, comme 'A' ou '$'. Le type le plus commun est char, qui un caractère d'un octet (8 bits). D'autres types sont également prévus pour les caractères larges.
Types d'entiers numérique : Ils peuvent stocker une valeur de nombre entier, tel que 7 ou 1024. Elles existent en une variété de tailles et peuvent être soit signé ou non signé selon qu'ils prennent en charge les valeurs négatives ou non.
Types à virgule flottante : Ils peuvent représenter des valeurs réelles telles que 3.14 ou 0.01 avec différents niveaux de précision.
Type Boolean : Le type booléen, connu en C++ sous le mot clé bool ne peut prendre que deux états, true ou flase.
Voici la liste compète des principaux type en C++ :
Groupe | Nom en C++* | Note sur la taille / précision |
types de caractère | char char16_t char32_t wchar_t |
Exactement un octet en taille (8 bits) Plus grand que char. 16 bits Plus grand que char16_t. 32 bits Représente le plus grand jeu de caractères pris en charge. |
types d'entier (signé) | signed char signed short int signed int signed long int signed long long int |
Même taille que char. 8 bits. Plage de -128 à 127 Entier court (16 bits) plage de -32 768 à 32 767 Entier de 32 bits sur les processeur 32 bits. Plage de -2 147 483 648 à 2 147 483 647 Entier long de 32 bits. Plage de -2 147 483 648 à 2 147 483 647 Entier très long de 64 bits. Plage de -9 223 372 036 854 775 808 à +9 223 372 036 854 775 807 |
types d'entier (non signé) | unsigned char unsigned short int unsigned int unsigned long int unsigned long long int |
Même taille que char. 8 bits. Plage de 0 à 255 Entier court (16 bits) plage de 0 à 65 535 Entier de 32 bits sur les processeur 32 bits. Plage de 0 à 4 294 967 295 Entier long de 32 bits. Plage de 0 à 4 294 967 295 Entier très long de 64 bits. Plage de 0 à 18 446 744 073 509 551 615 |
types à virgule flottante | float double long double |
Flottant (réel) de 32 bits. Plage de -3.4*10-38 à 3.4*1038 Flottant double de 64 bits. Plage de -1.7*10-308 à 1.7*10308 Flottant double long de 80 bits. Plage de -3.4*10-4932 à 3.4*104932 |
types booléen | bool | Même taille que le type int, parfois 1 sur quelques compilateurs. Prend deux valeurs : 'true' et 'false' mais une conversion implicite (valant 0 ou 1) est faite par le compilateur lorsque l'on affecte un entier (en réalité toute autre valeur que 0 est considérée comme égale à True). |
types void | void | Aucun stockage |
* Les noms de certain types entiers peuvent êtres abrégées en enlevant signed et int qui les compose. La partie qui n'est pas en italique est obligatoire pour identifier le type, la partie en italique est facultative. C'est à dire signed shot int peut être abrégée par signed short, short int, ou tout simplement par short. Ils identifient tous le même type de base.
Remarque : Dans le tableau si dessus seul le type char qui a une taille de 1 octet ne peux pas changer. Pour le reste de type leur taille minimum est celle indiqué dans le tableau mais leur taille peuvent changer selon la version du compilateur utilisé.