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.

178 POGLAVLJE 11. POKAZIVAČI{}float x[]={1.0,2.0,3.0},*px;px=&x[0];printf("Vrijednosti: x[0]=%g, x[1]=%g, x[2]=%g\n",x[0],x[1],x[2]);printf("Adrese : x[0]=%x, x[1]=%x, x[2]=%x\n",px,px+1,px+2);return 0;U ovom primjeru vidimo da će pokazivač biti inkrementiran dovoljno dapokaže na sljedeću float vrijednost. Uočimo da smo pokazivače ispisali uformatu %x kao heksadecimalni cijeli broj (usporedite s ispisom u formatu%p).Svakom pokazivaču moguće je dodati i oduzeti cijeli broj. Stoga ako jepx pokazivač i n varijabla tipa int, onda su dozvoljene operacije++px --px px+n px-nPokazivač px+n pokazuje na n-ti objekt nakon onog na kog pokazuje px.Unarni operatori & i * imaju viši prioritet od aritmetičkih operatora ioperatora pridruživanja. Stoga u izrazu*px += 1;dolazi do povećanja za jedan vrijednosti na koju px pokazuje, a ne samogpokazivača. Isti izraz bismo mogli napisati kao++*px;stoga što je asocijativnost unarnih operatora zdesna na lijevo pa se prvo primijenjujedereferenciranje, a zatim inkrementiranje. Iz tog razloga, želimoli koristiti postfiks notaciju operatora inkrementiranja, moramo koristiti zagrade:(*px)++;Izraz *px++ inkrementirao bi pokazivač nakon što bi vratio vrijednost na kojupx pokazuje.

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

Saved successfully!

Ooh no, something went wrong!