logo

Types de données C++

Tous variables utilisez le type de données lors de la déclaration pour restreindre le type de données à stocker. Par conséquent, nous pouvons dire que les types de données sont utilisés pour indiquer aux variables le type de données qu’elles peuvent stocker. Chaque fois qu'une variable est définie en C++, le compilateur alloue de la mémoire à cette variable en fonction du type de données avec lequel elle est déclarée. Chaque type de données nécessite une quantité de mémoire différente.

C++ prend en charge une grande variété de types de données et le programmeur peut sélectionner le type de données adapté aux besoins de l'application. Les types de données spécifient la taille et les types de valeurs à stocker. Cependant, la représentation du stockage et les instructions machine permettant de manipuler chaque type de données diffèrent d'une machine à l'autre, bien que les instructions C++ soient identiques sur toutes les machines.



C++ prend en charge les types de données suivants :

  1. Primaire ou Intégré ou Type de données fondamental
  2. Types de données dérivés
  3. Types de données définis par l'utilisateur

Types de données en C++

Les types de données en C++ sont principalement divisés en 3 types :

1. Types de données primitifs : Ces types de données sont des types de données intégrés ou prédéfinis et peuvent être utilisés directement par l'utilisateur pour déclarer des variables. exemple : int, char, float, bool, etc. Les types de données primitifs disponibles en C++ sont :



  • Entier
  • Personnage
  • Booléen
  • Point flottant
  • Double virgule flottante
  • Sans valeur ou nul
  • Caractère large

2. Types de données dérivés : Fonction

  • Tableau
  • Aiguille
  • Référence
  • 3. Types de données abstraits ou définis par l'utilisateur : Classe

  • Structure

  • Classe
  • syndicat
  • Classe
  • Énumération
  • Typedef défini Type de données
  • Types de données primitifs

      Classe
    • Entier : Le mot-clé utilisé pour les types de données entiers est int . Les nombres entiers nécessitent généralement 4 octets d'espace mémoire et vont de -2147483648 à 2147483647.
    • Personnage : Le type de données Character est utilisé pour stocker les caractères. Le mot-clé utilisé pour le type de données caractère est carboniser . Les caractères nécessitent généralement 1 octet d'espace mémoire et vont de -128 à 127 ou de 0 à 255.
    • Booléen : Le type de données booléen est utilisé pour stocker des valeurs booléennes ou logiques. Une variable booléenne peut stocker soit vrai ou FAUX . Le mot-clé utilisé pour le type de données booléen est bouffon .
    • Point flottant : Le type de données à virgule flottante est utilisé pour stocker des valeurs à virgule flottante simple précision ou des valeurs décimales. Le mot-clé utilisé pour le type de données à virgule flottante est flotter . Les variables flottantes nécessitent généralement 4 octets d’espace mémoire.
    • Double virgule flottante : Le type de données Double Floating Point est utilisé pour stocker des valeurs à virgule flottante double précision ou des valeurs décimales. Le mot clé utilisé pour le type de données double virgule flottante est double . Les variables doubles nécessitent généralement 8 octets d’espace mémoire.
    • vide : Vide signifie sans aucune valeur. Le type de données void représente une entité sans valeur. Un type de données void est utilisé pour les fonctions qui ne renvoient pas de valeur.
    • Classe
    • Caractère large : Caractère large Le type de données est également un type de données caractère, mais ce type de données a une taille supérieure au type de données normal de 8 bits. Représenté par wchar_t . Il fait généralement 2 ou 4 octets.
    • Opérateur sizeof() : opérateur sizeof() est utilisé pour trouver le nombre d'octets occupés par une variable/un type de données dans la mémoire de l'ordinateur.

    Exemple:



    int m , x[50];

    cout<

    cout<

    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.

    C++




    // C++ Program to Demonstrate the correct size> // of various data types on your computer.> #include> using> namespace> std;> int> main()> {> >cout <<>'Size of char : '> <<>sizeof>(>char>) << endl;> >cout <<>'Size of int : '> <<>sizeof>(>int>) << endl;> >cout <<>'Size of long : '> <<>sizeof>(>long>) << endl;> >cout <<>'Size of float : '> <<>sizeof>(>float>) << endl;> >cout <<>'Size of double : '> <<>sizeof>(>double>) << endl;> >return> 0;> }>

    >

    >

    Sortir

    Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8>

    Complexité temporelle : O(1)

    Complexité spatiale : O(1)

    Modificateurs de type de données

    Comme leur nom l'indique, les modificateurs de types de données sont utilisés avec les types de données intégrés pour modifier la longueur des données qu'un type de données particulier peut contenir.

    Modificateurs en C++

    Les modificateurs de type de données disponibles en C++ sont :

    • Signé
    • Non signé
    • Court
    • Long

    Le tableau ci-dessous résume la taille et la plage modifiées des types de données intégrés lorsqu'ils sont combinés avec les modificateurs de type :

    Type de données

    Taille (en octets)

    Gamme

    entier court

    2

    -32 768 à 32 767

    entier court non signé

    2

    0 à 65 535

    entier non signé

    4

    0 à 4 294 967 295

    int

    4

    -2 147 483 648 à 2 147 483 647

    coupe de chaîne javascript

    long int

    4

    -2 147 483 648 à 2 147 483 647

    entier long non signé

    4

    0 à 4 294 967 295

    long long int

    8

    -(2^63) à (2^63)-1

    non signé long long int

    8

    0 à 18 446 744 073 709 551 615

    caractère signé

    1

    -128 à 127

    caractère non signé

    1

    0 à 255

    flotter

    4

    -3,4×10^38 à 3,4×10^38

    double

    8

    -1,7×10^308 à 1,7×10^308

    longue double

    12

    -1,1×10^4932 à 1,1×10^4932

    wchar_t

    2 ou 4

    1 caractère large

    Note : Les valeurs ci-dessus peuvent varier d'un compilateur à l'autre. Dans l'exemple ci-dessus, nous avons considéré GCC 32 bits.
    Nous pouvons afficher la taille de tous les types de données en utilisant l'opérateur sizeof() et en passant le mot-clé du type de données, comme argument à cette fonction comme indiqué ci-dessous :

    Maintenant, pour obtenir la gamme de types de données, reportez-vous au tableau suivant

    Remarque : syntaxe Le fichier d'en-tête est défini pour trouver la plage de types de données fondamentaux. Les modificateurs non signés ont une valeur minimale de zéro. Ainsi, aucune constante macro n’est définie pour la valeur minimale non signée.

    Constantes de macro

    Nom

    Exprime

    CHAR_MIN

    La valeur minimale pour un objet de type char

    CHAR_MAX

    Valeur maximale pour un objet de type char

    SCHAR_MIN

    La valeur minimale pour un objet de type Signed char

    SCHAR_MAX

    Valeur maximale pour un objet de type Signed char

    VOL_MAX

    Valeur maximale pour un objet de type Unsigned char

    CHAR_BIT

    Nombre de bits dans un objet char

    MB_LEN_MAX

    Nombre maximum d'octets dans un caractère multi-octets

    SHRT_MIN

    La valeur minimale pour un objet de type short int

    SHRT_MAX

    Valeur maximale pour un objet de type short int

    USHRT_MAX

    Valeur maximale pour un objet de type Unsigned short int

    INT_MIN

    La valeur minimale pour un objet de type int

    INT_MAX

    Valeur maximale pour un objet de type int

    UINT_MAX

    Valeur maximale pour un objet de type Unsigned int

    LONG_MIN

    La valeur minimale pour un objet de type long int

    LONG_MAX

    Valeur maximale pour un objet de type long int

    HEAD_MAX

    Valeur maximale pour un objet de type Unsigned long int

    SHIP_MIN

    La valeur minimale pour un objet de type long long int

    LLONG_MAX

    Valeur maximale pour un objet de type long long int

    ULLONG_MAX

    Valeur maximale pour un objet de type Unsigned long long int

    La valeur réelle dépend de l'implémentation particulière du système et de la bibliothèque, mais doit refléter les limites de ces types dans la plate-forme cible. LLONG_MIN, LLONG_MAX et ULLONG_MAX sont définis pour les bibliothèques conformes au standard C de 1999 ou version ultérieure (qui inclut uniquement le standard C++ depuis 2011 : C++11).

    Programme C++ pour rechercher la plage de types de données à l'aide de constantes de macro

    Exemple:

    C++




    // C++ program to Demonstrate the sizes of data types> #include> #include> using> namespace> std;> int> main()> {> >cout <<>'Size of char : '> <<>sizeof>(>char>) <<>' byte'> ><< endl;> >cout <<>'char minimum value: '> << CHAR_MIN << endl;> >cout <<>'char maximum value: '> << CHAR_MAX << endl;> >cout <<>'Size of int : '> <<>sizeof>(>int>) <<>' bytes'> ><< endl;> >cout <<>'Size of short int : '> <<>sizeof>(>short> int>)> ><<>' bytes'> << endl;> >cout <<>'Size of long int : '> <<>sizeof>(>long> int>)> ><<>' bytes'> << endl;> >cout <<>'Size of signed long int : '> ><<>sizeof>(>signed> long> int>) <<>' bytes'> << endl;> >cout <<>'Size of unsigned long int : '> ><<>sizeof>(unsigned>long> int>) <<>' bytes'> << endl;> >cout <<>'Size of float : '> <<>sizeof>(>float>) <<>' bytes'> ><< endl;> >cout <<>'Size of double : '> <<>sizeof>(>double>)> ><<>' bytes'> << endl;> >cout <<>'Size of wchar_t : '> <<>sizeof>(>wchar_t>)> ><<>' bytes'> << endl;> >return> 0;> }>

    >

    >

    Sortir

    Size of char : 1 byte char minimum value: -128 char maximum value: 127 Size of int : 4 bytes Size of short int : 2 bytes Size of long int : 8 bytes Size of signed long int : 8 bytes Size of unsigned long int : 8 bytes Size of float : 4 bytes Size of double : 8 bytes Size of wchar_t : 4 bytes>

    Complexité temporelle : O(1)

    Complexité spatiale : O(1)

    C++




    #include> #include> using> namespace> std;> int> main() {> >// Integer data types> >int> a = 10;> >short> b = 20;> >long> c = 30;> >long> long> d = 40;> >cout <<>'Integer data types: '> << endl;> >cout <<>'int: '> << a << endl;> >cout <<>'short: '> << b << endl;> >cout <<>'long: '> << c << endl;> >cout <<>'long long: '> << d << endl;> > >// Floating-point data types> >float> e = 3.14f;> >double> f = 3.141592;> >long> double> g = 3.14159265358979L;> >cout <<>'Floating-point data types: '> << endl;> >cout <<>'float: '> << e << endl;> >cout <<>'double: '> << f << endl;> >cout <<>'long double: '> << g << endl;> > >// Character data types> >char> h =>'a'>;> >wchar_t> i = L>'b'>;> >char16_t j = u>'c'>;> >char32_t k = U>'d'>;> >cout <<>'Character data types: '> << endl;> >cout <<>'char: '> << h << endl;> >wcout <<>'wchar_t: '> << i << endl;> >cout <<>'char16_t: '> << j << endl;> >cout <<>'char32_t: '> << k << endl;> > >// Boolean data type> >bool> l =>true>;> >bool> m =>false>;> >cout <<>'Boolean data type: '> << endl;> >cout <<>'true: '> << l << endl;> >cout <<>'false: '> << m << endl;> > >// String data type> >string n =>'Hello, world!'>;> >cout <<>'String data type: '> << endl;> >cout << n << endl;> > >return> 0;> }>

    >

    >

    Sortir

    Integer data types: int: 10 short: 20 long: 30 long long: 40 Floating-point data types: float: 3.14 double: 3.14159 long double: 3.14159 Character data types: char: a wchar_t: b char16_t: 99 char32_t: 100 Boolean data type: true: 1 false: 0 String data type: Hello, world!>

    Ce programme déclare des variables de différents types de données, leur attribue des valeurs, puis imprime leurs valeurs.

    Les types de données entiers incluent int, short, long et long long. Ces types de données représentent des nombres entiers de différentes tailles.

    Les types de données à virgule flottante incluent float, double et long double. Ces types de données représentent des nombres réels avec différents niveaux de précision.

    Les types de données caractère incluent char, wchar_t, char16_t et char32_t. Ces types de données représentent des caractères individuels de différentes tailles.

    Le type de données booléen est un type de données simple qui ne peut avoir qu'une des deux valeurs suivantes : vrai ou faux.

    Le type de données chaîne est une séquence de caractères. Dans ce programme, nous utilisons la classe string pour déclarer une variable chaîne et lui attribuer une valeur.

    Avantages :

    Les types de données permettent de catégoriser et d'organiser les données dans un programme, ce qui facilite leur compréhension et leur gestion.
    Chaque type de données peut contenir une plage spécifique de valeurs, permettant un contrôle plus précis sur le type de données stockées.
    Les types de données aident à prévenir les erreurs et les bogues dans un programme en appliquant des règles strictes sur la manière dont les données peuvent être utilisées et manipulées.
    C++ fournit une large gamme de types de données, permettant aux développeurs de choisir le meilleur type pour une tâche spécifique.

    Désavantages :

    L'utilisation d'un mauvais type de données peut entraîner un comportement inattendu et des erreurs dans un programme.
    Certains types de données, tels que les doubles longs ou les tableaux de caractères, peuvent occuper une grande quantité de mémoire et avoir un impact sur les performances s'ils sont utilisés de manière excessive.
    Le système de types complexe du C++ peut rendre difficile l’apprentissage et l’utilisation efficace du langage par les débutants.
    L'utilisation de types de données peut ajouter une complexité et une verbosité supplémentaires à un programme, le rendant plus difficile à lire et à comprendre.