12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

184 POGLAVLJE 11. POKAZIVAČIŠtoviše, imamo da je *(px+i)==x[i] i dvije forme možemo koristiti ravnopravno.U skladu s time, ako imamo pokazivač px, onda možemo koristitinotaciju px[i] umjesto *(px+i).Pokazivači i polja su stoga gotovo ekvivalentni. Svaka funkcija f() kojakao argument uzima jednodimenzionalno polje nekog tipa može se deklariratikaoili kaotip_rez f(tip x[])tip_rez f(tip *x)Ipak postoje i bitne razlike. Polje x nije l-vrijednost, tj. naredbe tipax= ...;nisu dozvoljene. Isto tako, ime polja je konstantan pokazivač pa nije dozvoljenopisati x++, x-- i slično. Ali, u izrazu x+1 bit će iskorištena pokazivačkaaritmetika. To možemo iskoristiti u sljedećoj situaciji: uzmimo daimamo funkciju f(float *) koja očekuje polje tipa float i da kao stvarniargument funkciji želimo predati dio polja x od šestog do zadnjeg elemeta.Tada funkciju f() možemo pozvati silif(&x[5]);f(x+5);Da bismo naglasili razliku izmedu polja i pokazivača pogledajmo sljedećedvije deklaracije:char poruka[]="Dolazim odmah.";char *pporuka="Dolazim odmah.";U prvoj se deklarira i inicijalizira polje od 15 znakova koje je moguće dohvatitii mijenjati putem indeksa u uglatim zagradama. U drugoj deklaraciji deklarirase pokazivač na char i inicijalizira adresom znakovnog niza "Dolazimodmah.". Sve članove niza možemo dohvatiti putem pokazivača, ali modificiranjeniza putem pokazivača je nedefinirana operacija. Naime, prevodilacima slobodu konstantan niz znakova smjestiti bilo gdje u memoriji pa stogane može garantirati da će se vrijednosti niza moći mijenjati. S druge stranepokazivač pporuka može pokazivati i na svaku drugu char varijablu.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!