Avatar billede tosssen Nybegynder
28. juli 2002 - 10:12 Der er 2 kommentarer og
1 løsning

Jeg har glemt hvad *& betyder

Hej, er der nogen der lige hurtigt kan fortælle mig hvad *& betyder. Eksempel:

void PushHead(Node*& head, int value)
{
    Node* oldHead = head;

    head = new Node;
    head->value = value;
    head->next = oldHead;
}

Dette er taget ud af en sammenhæng hvor Node er en struct. Det jeg vil vide er hvad første parameter er. Er det en pointer til en reference, eller hvad er det?
Avatar billede nico26 Nybegynder
28. juli 2002 - 13:30 #1
En reference til en pointer
Avatar billede kamikaze Nybegynder
28. juli 2002 - 15:32 #2
Du overfører en reference til en pointer istedet for at lave en ny pointer. Det er det samme som:

typedef node Node*;
...
void PushHead(node &head, int value);
Avatar billede nico26 Nybegynder
28. juli 2002 - 15:40 #3
Node * n;

....

PushHead(n, 0);

...

void PushHead(Node*& head, int value)
{
    Node* oldHead = head;

    head = new Node; <-- her er det i virkeligheden n der sættes til at pege på den nye knude
    head->value = value;
    head->next = oldHead;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester