logo

Tipuri de date C++

Toate variabile utilizați tipul de date în timpul declarației pentru a restricționa tipul de date care urmează să fie stocate. Prin urmare, putem spune că tipurile de date sunt folosite pentru a spune variabilelor tipul de date pe care le pot stoca. Ori de câte ori o variabilă este definită în C++, compilatorul alocă o anumită memorie pentru acea variabilă pe baza tipului de date cu care este declarată. Fiecare tip de date necesită o cantitate diferită de memorie.

C++ acceptă o mare varietate de tipuri de date, iar programatorul poate selecta tipul de date adecvat nevoilor aplicației. Tipurile de date specifică dimensiunea și tipurile de valori care trebuie stocate. Cu toate acestea, reprezentarea stocării și instrucțiunile mașinii pentru a manipula fiecare tip de date diferă de la mașină la mașină, deși instrucțiunile C++ sunt identice pe toate mașinile.

C++ acceptă următoarele tipuri de date:



  1. Primar sau Incorporat sau Tip de date fundamentale
  2. Tipuri de date derivate
  3. Tipuri de date definite de utilizator

Tipuri de date în C++

Tipurile de date din C++ sunt împărțite în principal în 3 tipuri:

1. Tipuri de date primitive : Aceste tipuri de date sunt tipuri de date încorporate sau predefinite și pot fi utilizate direct de către utilizator pentru a declara variabile. exemplu: int, char, float, bool etc. Tipurile de date primitive disponibile în C++ sunt:

  • Întreg
  • Caracter
  • boolean
  • Punctul de plutire
  • Dubla virgulă flotantă
  • Fără valoare sau vid
  • Caracter larg

2. Tipuri de date derivate: Funcţie

  • Matrice
  • Indicator
  • Referinţă
  • 3. Tipuri de date abstracte sau definite de utilizator : Clasă

  • Structura

  • Clasă
  • Uniune
  • Clasă
  • Enumerare
  • Typedef definit Datatype
  • Tipuri de date primitive

      Clasă
    • Întreg : Cuvântul cheie folosit pentru tipurile de date întregi este int . Numerele întregi necesită de obicei 4 octeți de spațiu de memorie și variază de la -2147483648 la 2147483647.
    • Caracter : Tipul de date de caractere este utilizat pentru stocarea caracterelor. Cuvântul cheie folosit pentru tipul de date caracter este char . Caracterele necesită de obicei 1 octet de spațiu de memorie și variază de la -128 la 127 sau de la 0 la 255.
    • boolean : Tipul de date boolean este utilizat pentru stocarea valorilor booleene sau logice. O variabilă booleană poate stoca oricare Adevărat sau fals . Cuvântul cheie folosit pentru tipul de date boolean este bool .
    • Punctul de plutire : tipul de date în virgulă mobilă este utilizat pentru stocarea valorilor în virgulă mobilă cu precizie unică sau a valorilor zecimale. Cuvântul cheie utilizat pentru tipul de date în virgulă mobilă este pluti . Variabilele float necesită de obicei 4 octeți de spațiu de memorie.
    • Dubla virgulă flotantă : tipul de date în virgulă mobilă dublă este utilizat pentru stocarea valorilor în virgulă mobilă cu precizie dublă sau a valorilor zecimale. Cuvântul cheie folosit pentru tipul de date dublu în virgulă mobilă este dubla . Variabilele duble necesită de obicei 8 octeți de spațiu de memorie.
    • gol : Vidul înseamnă fără nicio valoare. tipul de date void reprezintă o entitate fără valoare. Un tip de date void este utilizat pentru acele funcții care nu returnează o valoare.
    • Clasă
    • Caracter larg : Caracter larg tipul de date este, de asemenea, un tip de date caracter, dar acest tip de date are o dimensiune mai mare decât tipul normal de date pe 8 biți. Reprezentată de wchar_t . În general, are o lungime de 2 sau 4 octeți.
    • operator sizeof(): operator sizeof(). este folosit pentru a găsi numărul de octeți ocupați de o variabilă/tip de date în memoria computerului.

    Exemplu:

    int m , x[50];

    cout<

    cout<

    Mărimea variabilelor poate fi diferită de cele prezentate în tabelul de mai sus, în funcție de compilator și de computerul pe care îl utilizați.

    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;> }>

    >

    >

    Ieșire

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

    Complexitatea timpului: O(1)

    Complexitatea spațiului: O(1)

    Modificatori de tip de date

    După cum sugerează și numele, modificatorii tipurilor de date sunt utilizați împreună cu tipurile de date încorporate pentru a modifica lungimea datelor pe care o poate deține un anumit tip de date.

    Modificatori în C++

    Modificatorii tipului de date disponibili în C++ sunt:

    • Semnat
    • Nesemnat
    • Mic de statura
    • Lung

    Tabelul de mai jos rezumă dimensiunea și intervalul modificate ale tipurilor de date încorporate atunci când sunt combinate cu modificatorii de tip:

    Tip de date

    Dimensiune (în octeți)

    Gamă

    scurt int

    2

    -32.768 până la 32.767

    nesemnat scurt int

    2

    0 până la 65.535

    nesemnat int

    4

    0 până la 4.294.967.295

    int

    4

    -2.147.483.648 până la 2.147.483.647

    salvează gimp ca jpeg

    lung int

    4

    -2.147.483.648 până la 2.147.483.647

    nesemnat lung int

    4

    0 până la 4.294.967.295

    lung lung int

    8

    -(2^63) până la (2^63)-1

    nesemnat lung long int

    8

    0 până la 18.446.744.073.709.551.615

    semnat char

    1

    -128 la 127

    nesemnat char

    1

    de la 0 la 255

    pluti

    4

    -3,4×10^38 până la 3,4×10^38

    dubla

    8

    -1,7×10^308 până la 1,7×10^308

    dublu lung

    12

    -1,1×10^4932 până la 1,1×10^4932

    wchar_t

    2 sau 4

    1 caracter larg

    Notă : Valorile de mai sus pot varia de la compilator la compilator. În exemplul de mai sus, am luat în considerare GCC 32 de biți.
    Putem afișa dimensiunea tuturor tipurilor de date utilizând operatorul sizeof() și trecând cuvântul cheie al tipului de date, ca argument pentru această funcție, așa cum se arată mai jos:

    Acum, pentru a obține gama de tipuri de date, consultați următorul grafic

    Notă: sintaxă fișierul antet este definit pentru a găsi gama de tipuri de date fundamentale. Modificatorii nesemnați au valoarea minimă zero. Deci, nu sunt definite macroconstante pentru valoarea minimă fără semn.

    Constante macro

    Nume

    Exprimă

    CHAR_MIN

    Valoarea minimă pentru un obiect de tip char

    CHAR_MAX

    Valoarea maximă pentru un obiect de tip char

    SCHAR_MIN

    Valoarea minimă pentru un obiect de tip Signed char

    SCHAR_MAX

    Valoarea maximă pentru un obiect de tip Signed char

    FLIGHT_MAX

    Valoarea maximă pentru un obiect de tip Unsigned char

    CHAR_BIT

    Numărul de biți dintr-un obiect char

    MB_LEN_MAX

    Numărul maxim de octeți într-un caracter pe mai mulți octeți

    SHRT_MIN

    Valoarea minimă pentru un obiect de tip short int

    SHRT_MAX

    Valoarea maximă pentru un obiect de tip short int

    USHRT_MAX

    Valoarea maximă pentru un obiect de tip Unsigned short int

    INT_MIN

    Valoarea minimă pentru un obiect de tip int

    INT_MAX

    Valoarea maximă pentru un obiect de tip int

    UINT_MAX

    Valoarea maximă pentru un obiect de tip Unsigned int

    LONG_MIN

    Valoarea minimă pentru un obiect de tip long int

    LONG_MAX

    Valoarea maximă pentru un obiect de tip long int

    HEAD_MAX

    Valoarea maximă pentru un obiect de tip Unsigned long int

    SHIP_MIN

    Valoarea minimă pentru un obiect de tip long long int

    LLONG_MAX

    Valoarea maximă pentru un obiect de tip long long int

    ULLONG_MAX

    Valoarea maximă pentru un obiect de tip Unsigned long long int

    Valoarea reală depinde de sistemul particular și de implementarea bibliotecii, dar trebuie să reflecte limitele acestor tipuri în platforma țintă. LLONG_MIN, LLONG_MAX și ULLONG_MAX sunt definite pentru bibliotecile care respectă standardul C din 1999 sau ulterior (care include doar standardul C++ din 2011: C++11).

    Program C++ pentru a găsi gama de tipuri de date folosind constante macro

    Exemplu:

    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;> }>

    >

    >

    Ieșire

    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>

    Complexitatea timpului: O(1)

    Complexitatea spațiului: 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;> }>

    >

    >

    Ieșire

    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!>

    Acest program declară variabile de diferite tipuri de date, le atribuie valori și apoi le imprimă valorile.

    Tipurile de date întregi includ int, short, long și long long. Aceste tipuri de date reprezintă numere întregi de dimensiuni diferite.

    Tipurile de date în virgulă mobilă includ float, double și long double. Aceste tipuri de date reprezintă numere reale cu diferite niveluri de precizie.

    Tipurile de date caractere includ char, wchar_t, char16_t și char32_t. Aceste tipuri de date reprezintă caractere individuale de dimensiuni diferite.

    Tipul de date boolean este un tip de date simplu care poate avea doar una dintre cele două valori: adevărat sau fals.

    Tipul de date șir este o secvență de caractere. În acest program, folosim clasa șir pentru a declara o variabilă șir și pentru a-i atribui o valoare.

    Avantaje :

    Tipurile de date oferă o modalitate de a clasifica și organiza datele într-un program, făcându-l mai ușor de înțeles și de gestionat.
    Fiecare tip de date are un interval specific de valori pe care le poate deține, permițând un control mai precis asupra tipului de date stocate.
    Tipurile de date ajută la prevenirea erorilor și erorilor într-un program prin aplicarea unor reguli stricte despre modul în care datele pot fi utilizate și manipulate.
    C++ oferă o gamă largă de tipuri de date, permițând dezvoltatorilor să aleagă cel mai bun tip pentru o anumită sarcină.

    Dezavantaje :

    Utilizarea unui tip de date greșit poate duce la un comportament neașteptat și erori într-un program.
    Unele tipuri de date, cum ar fi matricele duble lungi sau matrice de caractere, pot ocupa o cantitate mare de memorie și pot afecta performanța dacă sunt folosite excesiv.
    Sistemul de tip complex al C++ poate face dificilă pentru începători să învețe și să folosească limba în mod eficient.
    Utilizarea tipurilor de date poate adăuga un plus de complexitate și verbozitate unui program, făcându-l mai greu de citit și de înțeles.