Toto je starší verze dokumentu!
Datový typ definuje v programování druh nebo význam hodnot, kterých smí nabývat proměnná (nebo konstanta). Datový typ je určen oborem hodnot a zároveň výpočetními operacemi, které lze s hodnotami tohoto typu provádět
Jednoduché (také elementární) datové typy jsou většinou definované přímo jazykem, jsou do něj zabudované, můžeme je dělit na ordinální a reálné.
Hodnoty ordinálního typu tvoří lineárně uspořádanou množinu, kde pro každý prvek je přesně definovaný předchůdce i následovník (z posledního prvku ve většině jazyků dochází k tzv. přetečení na první).
Integer - nejtypičtější ordinální datový typ. Jedná se o celé číslo - můžeme tedy jasně definovat předchůdce (číslo o 1 menší) a následovníka (číslo o 1 větší). Integer mívá omezený rozsah, např. pokud je omezený na 8 bitů má rozsah -128 až 127 (Pokud k 8 bitovému integeru s hodnotou 127 přičteme 1, dojde k přetečení a získáme číslo -128)
V jazyce C existují tyto konkrétní typy:
Char - neboli znak = jednotka informace, která zpravidla odpovídá jednomu znaku v psané formě přirozeného jazyka. Tedy jednomu písmenku, číslici, symbolu, interpunkci,… např. 'a', 'A', 'g', ' ', '5', '%'.
Výčtový typ - jedná se o datový typ definovaný uživatelem - může nabývat hodnot ze specifikované konečné množiny. Např. měsíce v roce (leden, únor…), dny v týdnu (pondělí, úterý…)
v C ho definujeme takto:
typedef enum {
PRAHA, BRNO, OSTRAVA
} MESTA;
U neordinálních datových typů není jednoznačně určen předchůdce a následovník každé hodnoty.
Double, float, real - reálné číslo nebo také číslo s plovoucí desetinnou čárkou, např. '1.58' nebo '0.0045'. V počítači je většinou reprezentováno jako celé číslo * 2exponent kde exponent je také celé čislo. Mnohá desetinná čísla nelze v tomto formátu přesně reprezentovat. Např. číslo 0,1 má periodický dvojkový zápis (0,0001100)2. Důsledkem je, že reálná čísla můžou v počítači vypadat a chovat se trochu jinak.
V jazyce C existují tyto konkrétní typy:
Void - Tento typ nenabývá žádných hodnot, může sloužit např. pro deklaraci funkce, která nemá návratovou hodnotu, nebo označuje data nespecifikovaného typu.
Složené datové typy obsahují jeden nebo více prvků(např. 5 integerů). Můžeme říci, že jsou homogenní, když se skládají z prvků stejného typu, jinak jou heterogenní.
Pole - array - {[0] ⇒ 3; [1] ⇒ -2; [2] ⇒ 255], může být vícerozměrné (např. dvourozměrné označujeme jako matici). Jednotlivé prvky pole jsou dostupné pod číslem, které určuje jejich pořadí (tzv. index - v []). Nejčastější je konvence používaná v C-jazyce, kde indexy začínají číslem 0. Hlavní výhodou pole je možnost okamžitého přístupu ke kterékoli jeho položce přes index.
Velmi podobný je textový řetězec - string. Ke každému znaku se dostaneme podle čísla jeho pořadí. Např. string „liška“ - [2] ⇒ „š“; [3] ⇒ „k“.