Programski jezik C pozna tri osnovne tipe, ki jih uporabljamo za spremenljivke. Le-te hranijo cela števila, realna števila in znake. Kazalci lahko hranijo naslove spremenljivk.
C ne pozna logičnega tipa. Spremenljivke logičnega tipa lahko hranijo le dve vrednosti: pravilno (true) ali nepravilno (false). V programskem jeziku C se uporabljajo celoštevilske spremenljivke za hranjenje logičnih vrednosti. Logična vrednost pravilno je ponazorjena s celoštevilsko vrednostjo 1 in logična vrednost nepravilno z 0.
Poleg osnovnih poznamo tudi sestavljene tipe podatkov. Sestavljeni tipi podatkov se uporabljajo za hranjenje več vrednosti: več realnih in celih števil, znakov in kazalcev. Če moramo hraniti več vrednosti istega tipa, na primer 30 temperatur, potem uporabimo spremenljivko sestavljenega tipa polja. Za hranjenje tridesetih temperatur bo polje veliko 30 elementov in bo lahko hranilo 30 realnih števil.
Velikokrat srečamo podatke, ki so sestavljeni iz več elementarnejših podatkov. Tak podatek je datum, ki je sestavljen iz dneva, meseca in leta. Datum bomo hranili v spremenljivki strukturnega tipa, ki ga bomo morali še natančneje opisati.
Povedati bomo morali, da bo strukturni tip za hranjenje datuma sestavljen iz treh komponent. Prva bo hranila celo število dneva v mesecu, druga bo hranila polje znakov, ki bodo opisovali mesec in tretja komponenta bo znova celo število, ki bo opisovala leto.
Naslednja tabela prikazuje opis tipov v C-ju. Spremenljivke posameznih tipov potrebujejo različen pomnilniški prostor.
TIP | C |
STANDARDNI | int spremenljivka; short int pozStevilo; |
celoštevilski | int a=5; |
unsigned short int pozStevilo; | |
realni | float realnaSprem; double velikoRealnoStev; |
znakovni | char znak ='a'; |
KAZALCI |
int *naslovB; /* naslov B je kazalec na int */ |
int b, c; | |
naslov B=&b; | |
c = *naslovB; | |
POLJE | int a[50]; |
char beseda[25]; char nic[]="Noc ima moc."; | |
float b[4]; | |
a[0]=5;...a[49]=12; | |
beseda="abcde"; NAPAKA.!!. | |
strcpy(beseda, "abcde"); | |
b[0]=1.2; b[3]=12.3; | |
STRUKTURA | struct dnevni |
{ unsigned short int dan; | |
unsigned short int mesec; | |
unsigned int leto; } | |
struct dnevni d; | |
d.mesec=3; d.leto=1999; | |
ali struct dnevni d={3, 5, 1999} |