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 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ý 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>
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>
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í
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í
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í
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>