 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
NUFAN Član


Pridružen-a: Pon 05 Apr 2004 21:39 Prispevkov: 947 Aktiv.: 3.99 Kraj: Žalec
|
Objavljeno: Ned Nov 12, 2006 11:21 pm Naslov sporočila: C++ in funkcije |
|
|
Imam problem in sicer si ne znam razložit kakšna je razlika med tema dvema funkcijama. V prvem primeru se argumenti pri klicu funkcije (podprograma) prenašajo po referenci, v drugem pa po vrednosti. Kakšna je razlika med temi prenosi.
Koda: |
int referenca(int &x,int &y)
{
x++;
y++;
return x;
}
int main(int argc, char *argv[])
{
int x,y;
x=y=1;
referenca(x,y);
cout<<"Prenos po Referenci"<<endl;
cout<< x<<" "<<y<<endl;
return 0;
} |
in
Koda: |
int vrednost(int x,int y)
{
x++;
y++;
return x;
}
int main(int argc, char *argv[])
{
int x,y;
x=y=1;
vrednost(x,y);
cout<<"Prenos po vrednosti"<<endl;
cout<< x<<" "<<y<<endl;
return 0;
}
|
|
|
Nazaj na vrh |
|
 |
Djurodrljaca Član

Pridružen-a: Pet 19 Dec 2003 16:31 Prispevkov: 393 Aktiv.: 1.66 Kraj: Mengeš
|
Objavljeno: Ned Nov 12, 2006 11:25 pm Naslov sporočila: |
|
|
Napiši še kakšne vrednosti dobiš za oba primera. |
|
Nazaj na vrh |
|
 |
NUFAN Član


Pridružen-a: Pon 05 Apr 2004 21:39 Prispevkov: 947 Aktiv.: 3.99 Kraj: Žalec
|
Objavljeno: Ned Nov 12, 2006 11:32 pm Naslov sporočila: |
|
|
V prvem primeru x=2, y=2, v drugem pa x=1 in y=1. |
|
Nazaj na vrh |
|
 |
Djurodrljaca Član

Pridružen-a: Pet 19 Dec 2003 16:31 Prispevkov: 393 Aktiv.: 1.66 Kraj: Mengeš
|
Objavljeno: Ned Nov 12, 2006 11:37 pm Naslov sporočila: |
|
|
Sem mislil, da bo bolj komplicirano, pa sem opazil, da prej nisem dobro pregledal kode.
V prvem primeru uporabljaš reference argumentov, kar je zelo podobno uporabi kazalcev. Torej ti spremeniš vrednost x in y, ki sta definirana v main().
V drugem primeru pa spreminjaš lokalne spremenljivke x in y, ki sta parametra funkcije vrednost() in zato nista dostopni main() funkciji. |
|
Nazaj na vrh |
|
 |
NUFAN Član


Pridružen-a: Pon 05 Apr 2004 21:39 Prispevkov: 947 Aktiv.: 3.99 Kraj: Žalec
|
Objavljeno: Pon Nov 13, 2006 10:04 pm Naslov sporočila: |
|
|
Hvala, zdaj razumem. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|