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.

182 POGLAVLJE 11. POKAZIVAČIRazlog je u tome što konverzija pokazivača na jedan tip u pokazivač naneki drugi tip može dovesti do promjene interne reprezentacije pokazivača.Ipak, svako takvo pridruživanje je dozvoljeno uz eksplicitnu promjenu tipa,tj. upotrebu cast operatora:char *pc;int *pi;.....pi=(int *) pc; /* ISPRAVNO */Ako ponovna izvršimo konverziju u polazni tip pokazivača, nije garantiranoda se vrijednost pokazivača neće promijeniti.Pokazivač može biti deklariran kao pokazivač na void i tada govorimo ogeneričkom pokazivaču.void *p;Pokazivač na bilo koji tip može se konvertirati u pokazivač na void i obratno,bez promjene pokazivača.double *pd0,*pd1;void *p;.....p=pd0; /* ISPRAVNO */pd1=p; /* ISPRAVNO */Osnovna uloga generičkog pokazivača je da omogući funkciji da uzme pokazivačna bilo koji tip podatka.double *pd0;void f(void *);.....f(pd0); /* O.K. */S druge strane, ako se želi da funkcija primi upravo pokazivač na double,onda formalni argument treba deklarirati kao pokazivač na double.Generički pokazivač se ne može dereferencirati, povećavati i smanjivati.U sljedećem primjeru funkcija print uzima generički pokazivač ptr i jedanargument tipa char koji govori na kakav objekt ptr pokazuje. Argumentse zatim ispisuje na odgovarajući način.#include #include

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

Saved successfully!

Ooh no, something went wrong!