Pokazivači

1. Definicija pokazivača

Svaka varijabla ima adresu na kojoj je pohranjena u radnoj memoriji računala. Do sada smo se bavili isključivo vrijednostima varijabli. 

Pokazivač je varijabla koja sadrži memorijsku adresu varijable na koju pokazuje

Pokazivači nam omogućuju stvaranje i manipulaciju dinamičkim strukturama podataka te pristup podacima direktno na adresi na kojoj su pohranjeni, a ne kopijama vrijednosti, tj. omogućuju nam dinamičku alokaciju memorije.

Deklaracija pokazivača: 

tip *ime;

Kada se u deklaraciji ispred imena varijable nalazi zvjezdica, varijabla postaje pokazivač

Tip pokazivača ne odnosi se na tip podatka samog pokazivača nego je  isti tipu varijable na koju pokazuje.

Npr.  

int *a; //pokazivač na cijeli broj 

Nakon deklaracije pokazivača, a prije no što se inicijalizira (tj. prije no što mu se dodjeli adresa na koju pokazuje) on sadržava proizvoljnu vrijednost. Zato je dobro za pokazivače koji se ne koriste dodijeliti vrijednost NULL.

int *a; //pokazivač koji ne pokazuje ni na što

a=NULL; 

Uz pokazivače koristimo dva specijalna operatora: * i &.

& je unarni operator adresiranja ili referenciranja koji vraća memorijsku adresu varijable na koju pokazuje (ispred koje se nalazi).

Npr.

int broj;

int *pokBroj;

pokBroj=&broj; //vraća adresu varijable broj

* je unarni operator indirekcije ili dereferenciranja koji vraća vrijednost varijable na koju pokazuje.