Všetky premenných použite typ údajov počas deklarácie na obmedzenie typu údajov, ktoré sa majú uložiť. Preto môžeme povedať, že dátové typy sa používajú na to, aby sme premenným informovali o type dát, ktoré môžu ukladať. Kedykoľvek je premenná definovaná v C++, kompilátor alokuje určitú pamäť pre túto premennú na základe dátového typu, s ktorým je deklarovaná. Každý typ údajov vyžaduje iné množstvo pamäte.
C++ podporuje širokú škálu dátových typov a programátor si môže vybrať dátový typ vhodný pre potreby aplikácie. Typy údajov určujú veľkosť a typy hodnôt, ktoré sa majú uložiť. Reprezentácia úložiska a strojové inštrukcie na manipuláciu s každým typom údajov sa však líšia od stroja k stroju, hoci inštrukcie C++ sú na všetkých strojoch identické.
C++ podporuje nasledujúce typy údajov:
- Primárny alebo Vstavaný alebo Základný dátový typ
- Odvodené dátové typy
- Používateľom definované typy údajov

Dátové typy v C++ sa delia hlavne na 3 typy:
1. Primitívne typy údajov : Tieto dátové typy sú vstavané alebo preddefinované dátové typy a používateľ ich môže priamo použiť na deklarovanie premenných. príklad: int, char, float, bool atď. Primitívne dátové typy dostupné v C++ sú:
- Celé číslo
- Charakter
- Boolean
- Plávajúca bodka
- Dvojitý pohyblivý bod
- Bezcenné alebo Void
- Široký charakter
2. Odvodené typy údajov: Funkcia
3. Abstraktné alebo používateľom definované typy údajov : Trieda
Primitívne dátové typy
- Trieda
- Celé číslo : Kľúčové slovo používané pre celočíselné dátové typy je int . Celé čísla zvyčajne vyžadujú 4 bajty pamäťového priestoru a pohybujú sa od -2147483648 do 2147483647.
- Charakter : Typ údajov znak sa používa na ukladanie znakov. Kľúčové slovo použité pre typ údajov znaku je char . Znaky zvyčajne vyžadujú 1 bajt pamäte a rozsah od -128 do 127 alebo 0 až 255.
- Boolean : Dátový typ Boolean sa používa na ukladanie boolovských alebo logických hodnôt. Booleovská premenná môže uložiť obe pravda alebo falošné . Kľúčové slovo použité pre typ údajov Boolean je bool .
- Plávajúca bodka : Dátový typ s pohyblivou rádovou čiarkou sa používa na ukladanie hodnôt s pohyblivou rádovou čiarkou alebo desatinných hodnôt s jednoduchou presnosťou. Kľúčové slovo používané pre typ údajov s pohyblivou rádovou čiarkou je plavák . Pohyblivé premenné zvyčajne vyžadujú 4 bajty pamäťového priestoru.
- Dvojitý pohyblivý bod : Dátový typ s dvojitou pohyblivou rádovou čiarkou sa používa na ukladanie hodnôt s pohyblivou rádovou čiarkou alebo desatinných hodnôt s dvojitou presnosťou. Kľúčové slovo používané pre typ údajov s dvojitou pohyblivou rádovou čiarkou je dvojitý . Dvojité premenné zvyčajne vyžadujú 8 bajtov pamäťového priestoru.
- neplatné : Neplatné znamená bez akejkoľvek hodnoty. dátový typ void predstavuje bezhodnotovú entitu. Typ údajov void sa používa pre tie funkcie, ktoré nevracajú hodnotu.
- Trieda
- Široký charakter : Široký charakter dátový typ je tiež znakový dátový typ, ale tento dátový typ má väčšiu veľkosť ako normálny 8-bitový dátový typ. Reprezentovaný wchar_t . Vo všeobecnosti má dĺžku 2 alebo 4 bajty.
- Operátor sizeof(): operátor sizeof(). sa používa na zistenie počtu bajtov obsadených premennou/údajovým typom v pamäti počítača.
Príklad:
int m, x[50];
cout<
cout<
Veľkosť premenných sa môže líšiť od tých, ktoré sú uvedené v tabuľke vyššie, v závislosti od kompilátora a počítača, ktorý používate.
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;> }> |
>
>Výkon
Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8>
Časová zložitosť: O(1)
Priestorová zložitosť: O(1)
Modifikátory dátových typov
Ako už názov napovedá, modifikátory údajových typov sa používajú so vstavanými typmi údajov na úpravu dĺžky údajov, ktoré môže konkrétny typ údajov obsahovať.

Modifikátory typu údajov dostupné v C++ sú:
- Podpísané
- Nepodpísané
- Krátky
- Dlhé
Nasledujúca tabuľka sumarizuje upravenú veľkosť a rozsah vstavaných dátových typov v kombinácii s modifikátormi typu:
| Dátový typ | Veľkosť (v bajtoch) | Rozsah |
|---|---|---|
| krátky int | 2 | -32 768 až 32 767 |
| unsigned short int | 2 | 0 až 65 535 |
| unsigned int | 4 | 0 až 4,294,967,295 |
| int | 4 | -2 147 483 648 až 2 147 483 647 cout |
| dlhá int | 4 | -2 147 483 648 až 2 147 483 647 |
| unsigned long int | 4 | 0 až 4,294,967,295 |
| dlhá dlhá int | 8 | -(2^63) až (2^63)-1 |
| unsigned long long int | 8 | 0 až 18 446 744 073 709 551 615 |
| podpísaný char | 1 | -128 až 127 |
| nepodpísaný char | 1 | 0 až 255 |
| plavák | 4 | -3,4×10^38 až 3,4×10^38 |
| dvojitý | 8 | -1,7×10^308 až 1,7×10^308 |
| dlhý dvojitý | 12 | -1,1×10^4932 až 1,1×10^4932 |
| wchar_t | 2 alebo 4 | 1 široký znak |
Poznámka : Vyššie uvedené hodnoty sa môžu líšiť od kompilátora k kompilátoru. Vo vyššie uvedenom príklade sme uvažovali 32-bitový GCC.
Veľkosť všetkých typov údajov môžeme zobraziť pomocou operátora sizeof() a odovzdaním kľúčového slova typu údajov ako argumentu tejto funkcie, ako je uvedené nižšie:
Ak chcete teraz získať rozsah typov údajov, pozrite si nasledujúcu tabuľku
Poznámka: syntax hlavičkový súbor je definovaný na nájdenie rozsahu základných dátových typov. Modifikátory bez znamienka majú minimálnu hodnotu nula. Takže pre minimálnu hodnotu bez znamienka nie sú definované žiadne makro konštanty.
Makro konštanty
| názov | vyjadruje |
|---|---|
| CHAR_MIN | Minimálna hodnota pre objekt typu char |
| CHAR_MAX | Maximálna hodnota pre objekt typu char |
| SCHAR_MIN | Minimálna hodnota pre objekt typu Signed char |
| SCHAR_MAX | Maximálna hodnota pre objekt typu Signed char |
| FLIGHT_MAX | Maximálna hodnota pre objekt typu Unsigned char |
| CHAR_BIT | Počet bitov v objekte typu char |
| MB_LEN_MAX | Maximálny počet bajtov vo viacbajtovom znaku |
| SHRT_MIN | Minimálna hodnota pre objekt typu short int |
| SHRT_MAX | Maximálna hodnota pre objekt typu short int |
| USHRT_MAX | Maximálna hodnota pre objekt typu Unsigned short int |
| INT_MIN | Minimálna hodnota pre objekt typu int |
| INT_MAX | Maximálna hodnota pre objekt typu int |
| UINT_MAX | Maximálna hodnota pre objekt typu Unsigned int |
| LONG_MIN | Minimálna hodnota pre objekt typu long int |
| LONG_MAX | Maximálna hodnota pre objekt typu long int |
| HEAD_MAX | Maximálna hodnota pre objekt typu Unsigned long int |
| SHIP_MIN | Minimálna hodnota pre objekt typu long long int |
| LLONG_MAX | Maximálna hodnota pre objekt typu long long int |
| ULLONG_MAX | Maximálna hodnota pre objekt typu Unsigned long long int |
Skutočná hodnota závisí od konkrétneho systému a implementácie knižnice, ale musí odrážať limity týchto typov v cieľovej platforme. LLONG_MIN, LLONG_MAX a ULLONG_MAX sú definované pre knižnice vyhovujúce štandardu C z roku 1999 alebo novšiemu (ktorý zahŕňa iba štandard C++ od roku 2011: C++11).
Program C++ na nájdenie rozsahu dátových typov pomocou konštánt makra
Príklad:
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;> }> |
>
>Výkon
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>
Časová zložitosť: O(1)
Priestorová zložitosť: 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;> }> |
>
>Výkon
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!>
Tento program deklaruje premenné rôznych dátových typov, priraďuje im hodnoty a následne ich hodnoty vytlačí.
Typy celočíselných údajov zahŕňajú int, short, long a long long. Tieto typy údajov predstavujú celé čísla rôznych veľkostí.
Typy údajov s pohyblivou rádovou čiarkou zahŕňajú float, double a long double. Tieto typy údajov predstavujú reálne čísla s rôznou úrovňou presnosti.
Typy údajov znakov zahŕňajú char, wchar_t, char16_t a char32_t. Tieto dátové typy predstavujú jednotlivé znaky rôznej veľkosti.
Booleovský dátový typ je jednoduchý dátový typ, ktorý môže mať iba jednu z dvoch hodnôt: true alebo false.
Dátový typ reťazca je postupnosť znakov. V tomto programe používame triedu string na deklarovanie reťazcovej premennej a priraďujeme jej hodnotu.
Výhody :
Typy údajov poskytujú spôsob, ako kategorizovať a organizovať údaje v programe, čo uľahčuje pochopenie a správu.
Každý typ údajov má špecifický rozsah hodnôt, ktoré môže obsahovať, čo umožňuje presnejšiu kontrolu nad typom ukladaných údajov.
Dátové typy pomáhajú predchádzať chybám a chybám v programe presadzovaním prísnych pravidiel o tom, ako možno údaje používať a manipulovať s nimi.
C++ poskytuje širokú škálu dátových typov, čo umožňuje vývojárom vybrať si najlepší typ pre konkrétnu úlohu.
Nevýhody :
Použitie nesprávneho typu údajov môže viesť k neočakávanému správaniu a chybám v programe.
Niektoré typy údajov, ako napríklad polia typu long double alebo char, môžu pri nadmernom používaní zaberať veľké množstvo pamäte a ovplyvniť výkon.
Komplexný typový systém C++ môže začiatočníkom sťažiť učenie a efektívne používanie jazyka.
Použitie dátových typov môže pridať ďalšiu zložitosť a podrobnosť programu, čo sťažuje jeho čítanie a pochopenie.