E-gradiva > Računalništvo > Programiranje > Načrtovanje in razvoj programskih aplikacij > Kazalci

Prijava

Kazalci 

Kazalci predstavljajo spremenljivke, katerih zaloga vrednosti so pomnilniški naslovi. To omogoča, da obravnavamo naslov pomnilniške lokacije kot spremenljivko.

int y = 5;

int
*ykaz; // kazalec na pomnilniške lokacije, kjer so shranjena cela števila

 

Ime spremenljivke vrednost naslov pomnilniške lokacije
y 5 445

 

Prireditev naslova

ykaz = &y;  // prireditev naslova, kjer je shranjena vrednost spremenljivke y (to je vrednost 5)

Prireditev naslova

Slika 1: Prireditev naslova

 

Ozemljitev kazalca

int *ykaz = NULL; // inicializacija vrednosti kazalca - kazalec ne kaže nikamor

 

Ozemljitev kazalca

Slika 2: Ozemljitev kazalca

 

Dereferenciranje kazalca

int y1 = *ykaz;     // dereferenciranje kazalca

 

Dereferenciranje kazalca

Slika 3: Dereferenciranje kazalca

 

Generiranje novega objekta

ykaz = new int;     // generiranje novega kazalca - alocira se prostor za novo pomnilniško lokacijo, na katero kaže kazalec


primer: double *ykaz;

 

ykaz = new double(5.16);   // dodelitev pomnilnika in inicializacija vrednosti

Generiranje novega objekta

Slika 4: Generiranje novega objekta

  

Brisanje objekta


delete ykaz;            // sprosti pomnilniško lokacijo, na katero kaže kazalec

 

Brisanje objekta

Slika 5: Brisanje objekta

 

Aritmetika s kazalci

Osnovno pravilo aritmetike s kazalci je, da se naslov izračuna odvisno od velikosti objekta, na katerega kaže kazalec:

 

vrednost_kazalca + sizeof(tip kazalca) * i

 

Predpostavimo, da naš prevajalnik shrani realno število v štirih zlogih.

 

Operacije s kazalci


Možne so naslednje operacije:

 

++ inkrementiranje kazalca
-- dekrementiranje kazalca
+ prištevanje celega števila
- odštevanje celega števila
+= dodajanje celega števila
-= odvzemanje celega števila

 

Pri odštevanju kazalcev dobimo celoštevilčno vrednost, sicer pa novi kazalec.