Jazyk C je silně typový, to znamená, že každý proměnná musí mít definovaný svůj datový typ a nelze je nijak za běhu programu měnit.

Každá proměnná zabírá určitou část paměti (viz tabulka níže) a proto by jsme neměli používat například long long int pro malé čísla, pokud víme, že v této proměnné nikdy velká čísla nebudou.

<aside> 💡 Proměnné je možné si představit jako prostor pro ukládání informace do paměti. Jak název napovídá, hodnota proměnné se při vykonávání programu může měnit.

</aside>

Datový typ

Datový typ je předpis, který dává Počítači informace o tom, jaký druh dat, bude v proměnné uložen. Není totiž jedno, zda ukládám text, celé číslo nebo třeba číslo desetinné. Každý datový typ zabírá v paměti jinou velikost.

Datové typy, které se v C používají a jejich rozsahy

Datový typ Co značuje Velikost v paměti Rozsah
int Celé čísla 4B (32b) -2 147 483 648 až do 2 147 483 647
long int Celé čísla 4B (32b) -2 147 483 648 až do 2 147 483 647
unsigned long int Celé čísla kladná 4B (32b) 0 až do 4 294 967 295
long long int Celé čísla 16B (64b) (2^63) až do (2^63)-1
float Desetinná čísla 4B (32b) 1.2E-38 až do 3.4E+38
double Desetinná čísla 8B (64b) 1.7E-308 až do 1.7E+308
long double Desetinná čísla 16B (128b) 3.4E-4932 až do 1.1E+4932
char Znak 1B (8b) -128 až do 127
unsigned char Znak 1B (8b) 0 až do 255
pole a řetězec typ * počet Speciální datový typ

<aside> ⚠️ Poznámka: long a unsigned jsou modifikátory datového typu, které lze použít u některých primitivních datových typů ke změně velikosti nebo délky datového typu. Existují i další modifikátory, ale ty pro naše účely nejsou potřeba.

</aside>

Syntaxe zápisu proměnné v jazyku C

type variableName = value;

Proměnné se zapisuje s datový typem před názvem proměnné. Název proměnné je na vašem uvážení. V jazyku C není nutné hned u proměnné deklarovat její hodnotu za = a lze tuto hodnotu nastavit až později, tzv. odložené naplnění.

<aside> ☝ Veškerý kód níže je psány uvnitř funkce main()!

Viz. část Ukázka správného zápisu kódu

</aside>

<aside> 💡 Proměnné vždy pojmenováváme anglicky aby pro nás měli jasný význam.

Pokud by se proměnná jmenovala třeba double x; a obsahovala plat zaměstnance nic nám to neřekne, ovšem pokud se bude jmenovat double salary; a bude obsahovat plat zaměstnance, je to více specifikující, přehlednější a jasnější.

</aside>

Ukázka celočíselné proměnné int

Double lze rozšířit o modifikátory jako je třeba long nebo long long nebo unsigned. Další možností je kombinace, například unsigned long long.

int num1; // definice proměnné
num1 = 1; // naplnění proměnné

int num2 = 2; // definice proměnné a zároveň naplnění

Ukázka celočíselné proměnné long int

long int numX; // definice proměnné
numX = 1; // naplnění proměnné

long int numY = 2; // definice proměnné a zároveň naplnění

Ukázka desetinné proměnné double

Double lze rozšířit o modifikátory jako je třeba long

double salary; // definice proměnné
salary = 129.8; // naplnění proměnné

double numY = 190.87; // definice proměnné a zároveň naplnění

Ukázka znakové proměnné char

U proměnných typu char je nutné vždy zapsat pouze 1 znak zadaný do jednoduchých uvozovek.

char variableA; // definice proměnné
variableA = 'A'; // naplnění proměnné

char variableX = 'c'; // definice proměnné a zároveň naplnění

<aside> 💡 Proměnná char může nést pouze 1 znak, který je v jednoduchých uvozovkách. Každý znak může nabývat hodnot 0 - 255 nebo -128 až 127. Každý z těchto znaků nalezneme přímo pod tímto číslem i v ASCII tabulce, která má právě stejný rozsah.

char je tedy zjednodušeně řečeno číselné vyjádření určitého znaku, proto můžeme tuto proměnnou vypsat jako číslo.

</aside>