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.