Som jag förstår det så är en variabel som skickas till en funktion by reference en pekare till variabeln?
Förvirrad PAN
:q
3 svar · 379 visningar · startad av PAN
Som jag förstår det så är en variabel som skickas till en funktion by reference en pekare till variabeln?
Förvirrad PAN
:q
Call by reference:
void foo(int *bar) {
*bar=555;
}
int a=42;
foo(&a);
//a = 555
Man skickar alltså adressen via pekaren som då är en slags 'variabel' eller snarare en referens till adressen för variabel a, i det här fallet.
Ifall man bara gör:
void foo(int bar){
bar=555;
}
int a=42;
foo(a);
// a = 42
Blir det 'call by value' och det innebär att värdet i a kopieras till bar. I funktionen foo så tilldelas bar i sin tur värdet 555, men genom att den variabeln bara finns i funktionen foo utan koppling till a, blir a oförändrad dvs värdet 42 står kvar. :)