logo

Podatkovni tipi C++

Vse spremenljivke uporabite vrsto podatkov med deklaracijo, da omejite vrsto podatkov, ki bodo shranjeni. Zato lahko rečemo, da se podatkovni tipi uporabljajo, da spremenljivkam povedo vrsto podatkov, ki jih lahko shranijo. Kadarkoli je spremenljivka definirana v C++, prevajalnik tej spremenljivki dodeli nekaj pomnilnika glede na podatkovni tip, s katerim je deklarirana. Vsak tip podatkov zahteva drugačno količino pomnilnika.

C++ podpira široko paleto tipov podatkov in programer lahko izbere tip podatkov, ki ustreza potrebam aplikacije. Tipi podatkov določajo velikost in vrste vrednosti, ki naj bodo shranjene. Vendar se predstavitev shranjevanja in strojna navodila za manipulacijo vsake vrste podatkov razlikujejo od stroja do stroja, čeprav so navodila C++ enaka na vseh strojih.

C++ podpira naslednje vrste podatkov:



  1. Primarni oz Vgradna oz Osnovni podatkovni tip
  2. Izpeljani tipi podatkov
  3. Uporabniško definirani tipi podatkov

Podatkovni tipi v C++

Podatkovne vrste v C++ so v glavnem razdeljene na 3 vrste:

1. Primitivni podatkovni tipi : Ti tipi podatkov so vgrajeni ali vnaprej določeni tipi podatkov in jih lahko uporabnik neposredno uporabi za deklariranje spremenljivk. primer: int, char, float, bool itd. Primitivni tipi podatkov, ki so na voljo v C++, so:

  • Celo število
  • Znak
  • Boolean
  • Plavajoča točka
  • Dvojna plavajoča točka
  • Brez vrednosti ali Praznina
  • Širok značaj

2. Izpeljani podatkovni tipi: funkcija

  • Array
  • Kazalec
  • Referenca
  • 3. Abstraktni ali uporabniško določeni podatkovni tipi : Razred

  • Struktura

  • Razred
  • zveza
  • Razred
  • Naštevanje
  • Typedef definiran Datatype
  • Primitivni podatkovni tipi

      Razred
    • Celo število : Ključna beseda, ki se uporablja za vrste celih podatkov, je int . Cela števila običajno zahtevajo 4 bajte pomnilniškega prostora in segajo od -2147483648 do 2147483647.
    • Znak : Znakovni podatkovni tip se uporablja za shranjevanje znakov. Ključna beseda, uporabljena za znakovni podatkovni tip, je char . Znaki običajno zahtevajo 1 bajt pomnilniškega prostora in so v razponu od -128 do 127 ali od 0 do 255.
    • Boolean : Logični podatkovni tip se uporablja za shranjevanje logičnih ali logičnih vrednosti. Logična spremenljivka lahko shrani oboje prav oz lažno . Ključna beseda, uporabljena za logični podatkovni tip, je bool .
    • Plavajoča točka : Podatkovni tip s plavajočo vejico se uporablja za shranjevanje vrednosti s plavajočo vejico z enojno natančnostjo ali decimalnih vrednosti. Ključna beseda, uporabljena za podatkovni tip s plavajočo vejico, je lebdi . Plavajoče spremenljivke običajno zahtevajo 4 bajte pomnilniškega prostora.
    • Dvojna plavajoča točka : Podatkovni tip Double Floating Point se uporablja za shranjevanje vrednosti s plavajočo vejico z dvojno natančnostjo ali decimalnih vrednosti. Ključna beseda, uporabljena za podatkovni tip z dvojno plavajočo vejico, je dvojno . Dvojne spremenljivke običajno zahtevajo 8 bajtov pomnilniškega prostora.
    • praznina : Prazen pomeni brez kakršne koli vrednosti. podatkovni tip void predstavlja entiteto brez vrednosti. Podatkovni tip void se uporablja za tiste funkcije, ki ne vrnejo vrednosti.
    • Razred
    • Širok značaj : Širok značaj podatkovni tip je tudi znakovni podatkovni tip, vendar ima ta podatkovni tip večjo velikost kot običajni 8-bitni podatkovni tip. Predstavlja wchar_t . Običajno je dolg 2 ali 4 bajte.
    • operator sizeof(): operator sizeof(). se uporablja za iskanje števila bajtov, ki jih zaseda spremenljivka/vrsta podatkov v pomnilniku računalnika.

    primer:

    int m, x[50];

    cout<

    cout<

    Velikost spremenljivk se lahko razlikuje od tistih, prikazanih v zgornji tabeli, odvisno od prevajalnika in računalnika, ki ga uporabljate.

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

    >

    >

    Izhod

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

    Časovna zapletenost: O(1)

    Kompleksnost prostora: O(1)

    Modifikatorji podatkovnega tipa

    Kot že ime pove, se modifikatorji podatkovnega tipa uporabljajo z vgrajenimi podatkovnimi tipi za spreminjanje dolžine podatkov, ki jih lahko vsebuje določena vrsta podatkov.

    Modifikatorji v C++

    Modifikatorji podatkovnega tipa, ki so na voljo v C++, so:

    • Podpisano
    • Nepodpisano
    • Kratek
    • dolga

    Spodnja tabela povzema spremenjeno velikost in obseg vgrajenih podatkovnih tipov v kombinaciji z modifikatorji tipa:

    Vrsta podatkov

    Velikost (v bajtih)

    Razpon

    kratka notr

    2

    -32.768 do 32.767

    nepredznačeno kratko notr

    2

    0 do 65.535

    nepodpisano int

    4

    0 do 4.294.967.295

    int

    4

    -2.147.483.648 do 2.147.483.647

    testiranje delovanja

    dolgo int

    4

    -2.147.483.648 do 2.147.483.647

    nepredznačeno dolgo int

    4

    0 do 4.294.967.295

    dolgo dolgo int

    8

    -(2^63) do (2^63)-1

    unsigned long long int

    8

    0 do 18.446.744.073.709.551.615

    podpisani znak

    1

    -128 do 127

    nepredpisan znak

    1

    0 do 255

    lebdi

    4

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

    dvojno

    8

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

    dolga dvojna

    12

    -1,1×10^4932 do 1,1×10^4932

    wchar_t

    2 ali 4

    1 širok znak

    Opomba : Zgornje vrednosti se lahko razlikujejo od prevajalnika do prevajalnika. V zgornjem primeru smo upoštevali 32-bitni GCC.
    Velikost vseh podatkovnih tipov lahko prikažemo z uporabo operatorja sizeof() in posredovanjem ključne besede podatkovnega tipa kot argumenta tej funkciji, kot je prikazano spodaj:

    Če si želite ogledati obseg vrst podatkov, si oglejte naslednjo tabelo

    Opomba: sintaksa glava datoteke je definirana za iskanje obsega osnovnih podatkovnih vrst. Nepodpisani modifikatorji imajo najmanjšo vrednost nič. Torej za najmanjšo vrednost brez predznaka ni definirana nobena makro konstanta.

    Makro konstante

    Ime

    Izraža

    CHAR_MIN

    Najmanjša vrednost za objekt tipa char

    CHAR_MAX

    Največja vrednost za objekt tipa char

    SCHAR_MIN

    Najmanjša vrednost za objekt tipa Signed char

    SCHAR_MAX

    Največja vrednost za objekt tipa Signed char

    FLIGHT_MAX

    Največja vrednost za objekt tipa Unsigned char

    CHAR_BIT

    Število bitov v objektu char

    MB_LEN_MAX

    Največje število bajtov v večbajtnem znaku

    SHRT_MIN

    Najmanjša vrednost za objekt tipa short int

    SHRT_MAX

    Največja vrednost za objekt tipa short int

    USHRT_MAX

    Največja vrednost za objekt tipa Unsigned short int

    INT_MIN

    Najmanjša vrednost za objekt tipa int

    INT_MAX

    Največja vrednost za objekt tipa int

    UINT_MAX

    Največja vrednost za objekt tipa Unsigned int

    LONG_MIN

    Najmanjša vrednost za objekt tipa long int

    LONG_MAX

    Največja vrednost za objekt tipa long int

    HEAD_MAX

    Največja vrednost za objekt tipa Unsigned long int

    SHIP_MIN

    Najmanjša vrednost za objekt tipa long long int

    LLONG_MAX

    Največja vrednost za objekt tipa long long int

    ULLONG_MAX

    Največja vrednost za objekt tipa Unsigned long long int

    Dejanska vrednost je odvisna od določenega sistema in implementacije knjižnice, vendar mora odražati omejitve teh vrst v ciljni platformi. LLONG_MIN, LLONG_MAX in ULLONG_MAX so definirani za knjižnice, ki so skladne s standardom C iz leta 1999 ali novejšim (ki vključuje samo standard C++ od leta 2011: C++11).

    Program C++ za iskanje obsega podatkovnih vrst z uporabo makro konstant

    primer:

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

    >

    >

    Izhod

    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>

    Časovna zapletenost: O(1)

    Kompleksnost prostora: 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;> }>

    >

    >

    Izhod

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

    Ta program deklarira spremenljivke različnih tipov podatkov, jim dodeli vrednosti in nato natisne njihove vrednosti.

    Tipi celih podatkov vključujejo int, short, long in long long. Ti podatkovni tipi predstavljajo cela števila različnih velikosti.

    Tipi podatkov s plavajočo vejico vključujejo float, double in long double. Ti tipi podatkov predstavljajo realna števila z različnimi stopnjami natančnosti.

    Tipi znakovnih podatkov vključujejo char, wchar_t, char16_t in char32_t. Ti podatkovni tipi predstavljajo posamezne znake različnih velikosti.

    Logični podatkovni tip je preprost podatkovni tip, ki ima lahko samo eno od dveh vrednosti: true ali false.

    Podatkovni tip niz je zaporedje znakov. V tem programu uporabljamo razred nizov, da deklariramo nizovno spremenljivko in ji dodelimo vrednost.

    Prednosti :

    Vrste podatkov omogočajo kategorizacijo in organiziranje podatkov v programu, kar olajša razumevanje in upravljanje.
    Vsaka vrsta podatkov ima določen obseg vrednosti, ki jih lahko vsebuje, kar omogoča natančnejši nadzor nad vrsto shranjenih podatkov.
    Tipi podatkov pomagajo preprečiti napake in hrošče v programu z uveljavljanjem strogih pravil o tem, kako se lahko podatki uporabljajo in manipulirajo.
    C++ ponuja široko paleto tipov podatkov, ki razvijalcem omogočajo, da izberejo najboljši tip za določeno nalogo.

    Slabosti :

    Uporaba napačne vrste podatkov lahko povzroči nepričakovano vedenje in napake v programu.
    Nekateri podatkovni tipi, kot so dolgi dvojniki ali nizi znakov, lahko zavzamejo veliko količino pomnilnika in vplivajo na zmogljivost, če se pretirano uporabljajo.
    Kompleksni tipski sistem C++ lahko začetnikom oteži učenje in učinkovito uporabo jezika.
    Uporaba podatkovnih tipov lahko doda dodatno zapletenost in podrobnost programa, zaradi česar je težje brati in razumeti.