Types de données C ++
Lors de l'écriture d'un programme dans n'importe quelle langue, vous devez utiliser diverses variables pour stocker diverses informations. Les variables ne sont rien d'autre que des emplacements de mémoire réservés pour stocker des valeurs. Cela signifie que lorsque vous créez une variable, vous réservez de l'espace en mémoire.
Vous pouvez souhaiter stocker des informations de différents types de données comme des caractères, des caractères larges, des nombres entiers, des virgule flottante, des virgule flottante double, des valeurs booléennes, etc. En fonction du type de données d'une variable, le système d'exploitation alloue de la mémoire et décide de ce qui peut être stocké dans le mémoire réservée.
Types intégrés primitifs
C ++ offre au programmeur un riche assortiment de types de données intégrés et définis par l'utilisateur. Le tableau suivant répertorie sept types de données de base C ++ -
Type | Mot-clé |
---|---|
Booléen | booléen |
Personnage | carboniser |
Entier | int |
Point flottant | flotte |
Double virgule flottante | double |
Sans valeur | néant |
Caractère large | wchar_t |
Plusieurs des types de base peuvent être modifiés en utilisant un ou plusieurs de ces modificateurs de type -
- signed
- unsigned
- short
- long
Le tableau suivant montre le type de variable, la quantité de mémoire nécessaire pour stocker la valeur en mémoire et les valeurs maximale et minimale pouvant être stockées dans ce type de variables.
Type | Largeur de bit typique | Gamme typique |
---|---|---|
carboniser | 1 octet | -127 à 127 ou 0 à 255 |
caractère non signé | 1 octet | 0 à 255 |
char signé | 1 octet | -127 à 127 |
int | 4 octets | -2147483648 à 2147483647 |
entier non signé | 4 octets | 0 à 4294967295 |
signé int | 4 octets | -2147483648 à 2147483647 |
int court | 2 octets | -32768 à 32767 |
int court non signé | 2 octets | 0 à 65 535 |
signé court int | 2 octets | -32768 à 32767 |
long int | 8 octets | -2 147 483 648 à 2 147 483 647 |
signé long int | 8 octets | idem long int |
entier long non signé | 8 octets | 0 à 4 294 967 295 |
long long int | 8 octets | - (2 ^ 63) à (2 ^ 63) -1 |
unsigned long long int | 8 octets | 0 à 18,446,744,073,709,551,615 |
flotte | 4 octets | |
double | 8 octets | |
long double | 12 octets | |
wchar_t | 2 ou 4 octets | 1 caractère large |
La taille des variables peut être différente de celles indiquées dans le tableau ci-dessus, selon le compilateur et l'ordinateur que vous utilisez.
Voici l'exemple qui produira la taille correcte de divers types de données sur votre ordinateur.
#include <iostream>
using namespace std;
int main() {
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of short int : " << sizeof(short int) << endl;
cout << "Size of long int : " << sizeof(long int) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
return 0;
}
Cet exemple utilise endl, qui insère un caractère de nouvelle ligne après chaque ligne et l'opérateur << est utilisé pour transmettre plusieurs valeurs à l'écran. Nous utilisons égalementsizeof() opérateur pour obtenir la taille de divers types de données.
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant qui peut varier d'une machine à l'autre -
Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4
Déclarations typedef
Vous pouvez créer un nouveau nom pour un type existant en utilisant typedef. Voici la syntaxe simple pour définir un nouveau type à l'aide de typedef -
typedef type newname;
Par exemple, ce qui suit indique au compilateur que feet est un autre nom pour int -
typedef int feet;
Maintenant, la déclaration suivante est parfaitement légale et crée une variable entière appelée distance -
feet distance;
Types énumérés
Un type énuméré déclare un nom de type facultatif et un ensemble de zéro ou plusieurs identificateurs qui peuvent être utilisés comme valeurs du type. Chaque énumérateur est une constante dont le type est l'énumération.
La création d'une énumération nécessite l'utilisation du mot-clé enum. La forme générale d'un type d'énumération est -
enum enum-name { list of names } var-list;
Ici, le nom-enum est le nom du type de l'énumération. La liste des noms est séparée par des virgules.
Par exemple, le code suivant définit une énumération de couleurs appelées colors et la variable c de type color. Enfin, c reçoit la valeur "bleu".
enum color { red, green, blue } c;
c = blue;
Par défaut, la valeur du premier nom est 0, le deuxième nom a la valeur 1 et le troisième a la valeur 2, et ainsi de suite. Mais vous pouvez donner un nom, une valeur spécifique en ajoutant un initialiseur. Par exemple, dans l'énumération suivante,green aura la valeur 5.
enum color { red, green = 5, blue };
Ici, blue aura une valeur de 6 car chaque nom sera un plus grand que celui qui le précède.