- Typový systém jazyka C zahrnuje primitivní datové typy, odvozené typy, složené typy a ukazatele.
Primitivní datové typy
- Integer (celá čísla):
int (4B)
: Standardní celočíselný typ.short int (2B)
: Krátký celočíselný typ.long int (4B)
: Dlouhý celočíselný typ.unsigned int (4B)
: Bez znaménka.
- Floating-point numbers (desetinná číslo):
float (4B)
: Jednoduchá přesnost s pohyblivou řádovou čárkou.double (8B)
: Dvojitá přesnost s pohyblivou řádovou čárkou.long double (12B - 32bit a 16B - 64bit)
: Rozšířená přesnost s pohyblivou řádovou čárkou.
- Character (znakové typy):
char (1B)
: Reprezentace jednoho znaku nebo malého celého čísla.
- Void (prázdný typ):
void
: Používá se pro funkce, které nevracejí hodnotu, a pro ukazatele bez konkrétního typu.
- Enum (Enumerace):
- enum: Umožňuje definovat typ, který může mít jednu z několika pojmenovaných hodnot.
enum week { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
Odvozené typy
- Array (pole):
- Pole je kolekce prvků stejného typu uložených v sousedních paměťových místech.
- Pointers (ukazatele):
- Ukazatele jsou proměnné, které obsahují adresu v paměti.
- Deklarace ukazatele se provádí před typem proměnné, např.
int *ptr;
pro ukazatel na celé číslo. - Ukazatele mohou být použity k práci s dynamickou pamětí a pro předávání adres funkcím pro manipulaci s daty mimo danou funkci.
- Strings (řetězce):
- V C jsou řetězce implementovány jako pole znaků zakončené nulovým znakem
\0
.
- V C jsou řetězce implementovány jako pole znaků zakončené nulovým znakem
- Structures (struktury):
- Struktura je uživatelem definovaný typ, který umožňuje seskupení různých typů dat pod jeden název.
- Unions (uniony):
- Union je podobná struktuře, ale všechny její členy sdílejí stejnou paměťovou oblast.
- To znamená, že v unii může být v daném okamžiku uložen pouze jeden člen, a všechny ostatní členy přepíšou stejnou oblast paměti.
Složené typy
- Složené typy jsou typy, které kombinují více primitivních nebo odvozených typů
- Pole struktur:
- Pole ukazatelů:
- a další
Typové modifikátory:
const
: Určuje, že hodnota proměnné je neměnná.const int constantValue = 10;
volatile
: Indikuje, že hodnota proměnné se může změnit mimo kontrolu programu- například hardwarovým zařízením
volatile int sensorValue;
signed
/unsigned
: Určuje, zda může být hodnota typu záporná (signed) nebo je vždy nezáporná (unsigned).restrict
: používá se s ukazateli, aby kompilátoru sdělilo, že ukazatel je jediným referenčním ukazatelem na objekt, na který ukazuje.
Typové přetypování:
- Přetypování umožňuje změnit typ proměnné na jiný typ.
- Například
(int) 5.5
provede přetypování desetinného čísla na celé číslo.
Navigace
Předchozí: Večeřící filozofové Následující: Principy správy paměti v jazyce C Celý okruh: 3. Programovací jazyky a programování