2. cvičení

Stručný přehled jazyka C++

Přehled základních datových typů

Paměť počítače je lineární a rozdělená na bajty (1 bajt = 8 bitů). Každý bajt v paměti má svou jedinečnou adresu. Interpretace jednotlivých dat uložených v paměti počítače závisí na datovém typu příslušné proměnné.

Typ Velikost (bits) Minimální hodnota Maximální hodnota Poznámky
bool 8 0 1 Pro použití typu bool v jazyce C je třeba #include <stdbool.h>.
char 8 -128 127 7-bitové kódování znaků pomocí ASCII tabulky.
unsigned char 8 0 255
short 16 -32768 32767 Typ pro reprezentaci celých čísel.
unsigned short 16 0 65535 Typ pro reprezentaci nezáporných celých čísel.
int 32 -2147483648 2147483647 Typ pro reprezentaci celých čísel.
unsigned int 32 0 4294967295 Typ pro reprezentaci nezáporných celých čísel.
long 64 -9223372036854775808 9223372036854775807 Typ pro reprezentaci celých čísel.
unsigned long 64 0 18446744073709551615 Typ pro reprezentaci nezáporných celých čísel.
float 32 \(\approx 1.175 \times 10^{-38}\) \(\approx 3.402 \times 10^{38}\) Typ pro reprezentaci racionálních čísel.
double 64 \(\approx 2.225 \times 10^{-308}\) \(\approx 1.797 \times 10^{308}\) Typ pro reprezentaci racionálních čísel.

Při vyhodnocování aritmetických operací obsahujících proměnné různých typů dochází k implicitní konverzi proměnných na „ten větší“ ze zúčastněných typů. Tedy např. součet proměnné typu short a proměnné typu int proběhne tak, že se hodnota proměnné typu short převede na typ int a součet se provede pro typ int. Při výpočtech může dojít k chybám způsobeným přetečením nebo podtečením maximálního rozsahu hodnot pro daný typ.

Pozor: Celočíselné proměnné lze dělit pouze celočíselně. Pokud je potřeba neceločíselný výsledek, je třeba explicitně provést přetypování, např. (float) x / y.

Pozor: Konverze na typ bool funguje jinak než konverze na ostatní celočíselné typy. Výraz (bool) 0.5 dává 1, kdežto (int) 0.5 dává 0.

Pozor: Hodnoty typu char (znaky) je třeba ve zdrojovém kódu zapisovat pomocí jednoduchých uvozovek, tedy 'a', 'b', 'c' apod. Pomocí dvojitých uvozovek se zapisují textové řetězce, kterými se budeme zabývat později.

Důležité pojmy