next up previous
Next: Testno izpisovanje - namesto Up: Enajste vaje iz racunalnistva Previous: Ocenjevanje domacih nalog

Prenos parametrov po vrednosti in referenci

Prenos parametrov po vrednosti pomeni, da se vrednost prekopira in nato lahko z njo poljubno pocnemo kar hocemo (npr.: beremo, brisemo, popravljamo, ...), zunaj funkcije pa se te spremembe ne poznajo.

Pri prenosu parametrov po referenci pa se vsaka sprememba, ki jo naredimo v notranjosti funkcije pozna tudi zunaj (izven te funkcije) - prenesemo le referenco na spremenljivko.

Primer za klic po vrednosti:

... Funkcija(int spremenljivka)
{
  spremenljivka = 10;
} /* Funkcija */
in za klic po referenci:
... Funkcija(int *spremenljivka)
{
 *spremenljivka = 10;
} /* Funkcija */

Razlika med prenosom parametrov po vrednosti in prenosom parametrov po referenci je v tem, da pri prenosu po referenci imamo zvezdico pred parametrom pri vrednosti pa ne.

Ko uporabljamo funkcijo, ki uporablja prenos po vrednosti, spremembe vrednosti spremenljivk znotraj te funkcije, ki smo jih podali kot parametre funkcije, niso vidne navzven - proti klicocemu programu.

Ko pa uporabljamo funkcijo, ki uporablja prenos po referenci, lahko znotraj te funkcije spreminjamo vrednosti spremenljivk, ki smo jih podali kot parametre funkcij in te spremembe so vidne v klicocem programu.

Ko prenasamo nize, tabele, matrike je vedno uporabljen prenos po referenci, vendar zvezdice v tem primeru ne pisemo. Ko prenasamo realna stevila, cela stevila, znake, logicne spremenljivke itd. po referenci, pa zvezdica je.

Omenili smo se en pojem, in sicer kazalec, ki ga bomo podrobneje spoznali na predavanjih. Kazalec je v bistvu referenca na nekaj.


next up previous
Next: Testno izpisovanje - namesto Up: Enajste vaje iz racunalnistva Previous: Ocenjevanje domacih nalog
Andrej Brodnik (Andy)
1999-01-19