02.11.2014 Views

Proceduralni jezici - FESB

Proceduralni jezici - FESB

Proceduralni jezici - FESB

SHOW MORE
SHOW LESS

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

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

Prijenos argumenata (stvarnih parametara) funkcije<br />

Stvarni parametar ili argument funkcije je objekt koji se deklarira kao formalni parametar funkcije. On ima ime, i<br />

vrijednost i adresu (ukoliko nije konstanta). U funkciju se mogu prenositi sve tri značajke argumenta. Koriste se sljedeći<br />

nazivi za prijenos argumenata u funkciju:<br />

Prenosi se<br />

Vrijednost: Formalni parametar se tretira kao lokalna varijabla koja se inicijalizira na vrijednost argumenta. To je<br />

standardni oblik prijenosa vrijednosti konstanti i skalarnih varijabli u C i Javi.<br />

Referenca: Formalni parametre je pokazivač na stvarni parametar. Koristi se u C++ i C za prijenos nizova i varijabli.<br />

Rezultat: Formalni parametar se tretira kao lokalna varijabla. Njena konačna vrijednost se nakon završetka funkcije<br />

kopira u stvarni argument funkcije.<br />

Vrijednost/Rezultat: Kombinacija dva moda. Formalni parametar se tretira kao lokalna varijabla koja se inicijalizira<br />

na vrijednost argumenta. Nakon završetka funkcije rezultat se upisuje u stvarni argument.<br />

Ime: Formalni parametar predstavlja blok koda (zovemo ga thunk) koji se evaluira da bi se dobila vrijednost ili<br />

adresa argumenta. Koristi se jedino u jeziku Algol.<br />

Read-only (Const): Dozvoljen je argument koristiti samo kao konstantu.<br />

Koji se načini prijenosa argumenata stvarno koristi?<br />

• C jezik koristi se prijenos vrijednosti, jedino se nizovima prenosi referenca (adresa nultog elementa)<br />

• C++ dozvoljava prijenos reference varijable<br />

void swap(int &a, int &b) {int t = a; a = b; b = t:}<br />

39

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

Saved successfully!

Ooh no, something went wrong!