---
title: "call by reference = pekare ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/117446-call-by-reference-pekare"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "PAN"
published: "2004-12-06T09:21:25.000Z"
updated: "2004-12-06T12:59:22.000Z"
replies: 3
views: 404
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/117446-call-by-reference-pekare"
---

# call by reference = pekare ?

## #1 — PAN, 2004-12-06T09:21Z

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

Permalänk: https://www.webforum.nu/p/117446

## #2 — PeW, 2004-12-06T11:36Z

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.  :)

Permalänk: https://www.webforum.nu/p/1500192

## #3 — Sang-drax, 2004-12-06T11:48Z

I C++ finns även:

```
void foo(int& bar) {
  bar=555;
}

int a=42;
foo(a);

//a = 555
```

Permalänk: https://www.webforum.nu/p/1500205

## #4 — PAN, 2004-12-06T12:59Z

Tack för svaren.

PAN

Permalänk: https://www.webforum.nu/p/1500249

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/117446-call-by-reference-pekare
