A típus (adattípus) azonosítja
- az adott típuson tárolható adatok milyenségét (halmazát)
- a tároláshoz szükséges memória mennyiségét (B-ok darabszáma)
- a tároláshoz felhasznált memóriaterület részeinek jelentését (akár a bit-ek szintjéig)
- az ilyen típusú adatokon végezhető műveleteket (pl. összeadás, összehasonlítás, stb.)
Amennyiben egy egész szám típus csak pozitív számok tárolását engedi meg (unsigned), akkor az adott bitmennyiségen (jelöljük ezt n-el) 0…2^n-1 nagyságú számokat lehet tárolni.
Pl: 8 biten 0…2^8-1, vagyis 0..255 közötti értékeket lehet ábrázolni.
Amennyiben egy egész szám típus megengedi a negatív számok tárolását is (signed), akkor az adott bitmennyiségen nagyságrendileg csak feleakkora számok tárolhatók.
Pl. 8 biten csak 255/2 vagyis körülbelül 128-ig tárolhatunk egész számokat, igaz, ez a negatív irányban is megvan.
Pontosabban: 8 biten -128 .. +127 közötti számokat lehet ábrázolni.
Egy típus tárolási mérete azt határozza meg, hogy a memóriában egy ilyen típusú érték hány B-ot foglal le.
Egész számok esetén minél nagyobb a tárolási méret, annál nagyobb számokat tudunk leírni.
Valós számok esetén minél nagyobb a tárolási méret, annál nagyobb számokat tudunk leírni, de annál pontosabban is, hiszen itt a számjegyek száma is fontos!
Egész számok esetében lehetőség van két tárolási módosítót használni:
- short :rövid
- long: hosszú
A char típus az egész számok egy speciális altípusa. Az ’unsigned char’ típus képes egy 0..255 közötti egész érték leírására. Ez (nem véletlenül) egyben az ASCII kódtáblában előforduló kódok leírására éppen elég.
Ennek megfelelően a char típusú változóban lévő érték (nézőpont kérdése)
- lehet egy 0 .. 255 közötti egész számnak is felfogni
- vagy lehet egy karakterkódnak, amely egy karaktert azonosít
Az egész típus egy típuscsalád, melynek sok tagja van. Ezen tagok mindegyike egész számok tárolására alkalmas, de különböznek egymástól tárolási méretben, és mindegyiknek van signed és unsigned változata is:
- char 1B
- short int 2B
- int 4B
Ez a táblázat csak akkor igaz teljes mértékben, ha a C fordítónk 32 bites.
char (signed) -128..127 1 byte
unsigned char 0..255 1 byte
short int (signed) -32768..32767 2 byte
unsigned short int 0..65535 2 byte
int (signed, long) -2147483648..2147483647 4 byte
unsigned int (long) 0..4294967295 4 byte
A valós számok típuscsalád elsősorban tört számok tárolására képes, de természetesen képes egész számok tárolására is.
A típusok között különbség a memóriaigényük. Minél több memóriát köt le egy típus, annál nagyobb pontossággal (több számjegy) képes tárolni az adott tört számot, illetve annál nagyobb számok tárolására képes.
A ’float’ típus 7 számjegy pontossággal tárol (ebbe az egész számjegyek is benne vannak).
A ’double’ típus (ezt használjuk gyakrabban) viszont 15 számjegy pontossággal tárolja a számokat. Használata során 8B helyigény jelentkezik.
A logikai típus a C nyelvből hiányzik. Helyette a char típust szokták használni, melynek tárolási igénye szintén 1B.
A logikai hamis értéket a 0 érték képviseli, minden más érték a logikai igaz értéknek tekintendő.