12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

68 POGLAVLJE 4. OPERATORI I IZRAZIKonverzija se dešava i kod operacije pridruživanja (vidi sekciju 4.4) akosu operandi s lijeve i desne strane različitog tipa. Operand na desnoj stranikonvertira se u tip operanda na lijevoj strani. Pri tome može doći do gubitkainformacije ako se konvertira širi tip u uži. Na primjer, ako je x varijabla tipafloat i n varijabla tipa int prilikom pridruživanja i=x doći će do odsjecanjadecimala u broju x.Konverzija se dešava prilikom prenošenja argumenata funkciji (vidi sekciju7.3). Naime, argumenti su izrazi i prije njihovog izračunavanja dolazi dokonverzije ukoliko je ona potrebna. Pri tome vrijede različita pravila ovisnoo tome da li funkcija ima prototip ili ne.• Ako funkcija nema prototipa, onda se svaki argument tipa char i shorttransformira u int, a float u double.• Ukoliko funkcija ima prototip, onda se svi argumenti pri pozivu konvertiraju(ako je to potrebno) u tipove deklarirane u prototipu (vidisekciju 7.2).Vrijednost nekog izraza može se eksplicitno konvertirati u zadani tippomoću operatora eksplicitne konverzije (tip) (eng. cast operator). Sintaksakonverzije je(tip) izraz;izraz će biti izračunat i njegova vrijednost konvertirana u tip unutar zagrada.U primjerudouble x;float y;........x= (double) y;y je eksplicitno konvertiran u tip double prije pridruživanja.konverzije mogu biti nužne u slučajevima kao što je sljedeći:Eksplicitneint i;double x;((int) (i+x))%2;4.1.2 Prioriteti i asocijativnostSvi su operatori hijerhijski grupirani prema svom prioritetu. Operacijaiz grupe s višim prioritetom izvršit će se prije operacija s nižim prioritetom.Upotrebom zagrada moguće je promijeniti redoslijed vršenja operacija.

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

Saved successfully!

Ooh no, something went wrong!