Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Reference vs. Pointere | Section
C++ Pointers og Referencer

bookReference vs. Pointere

Stryg for at vise menuen

Referencer og pointers giver indirekte adgang til variabelværdier, men de har nogle væsentlige forskelle, samt fordele og ulemper.

Syntaks

  • Pointers deklareres med symbolet *;

  • Referencer deklareres med symbolet &.

Initialisering

Du kan ikke erklære en tom reference. Men du kan erklære en tom pointer med nullptr.

Omtildeling

Referencer kan ikke omtildeles til at referere til et andet objekt.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }

Pointere kan omtildeles til at pege på forskellige hukommelsesadresser

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }

Adgang til værdien

For at få adgang til værdien, som en pointer peger på, bruges dereference-operatoren *. For referencer er det ikke nødvendigt at bruge en speciel operator; referencevariablen bruges direkte.

Både pointers og referencer er afgørende for hukommelsesstyring og bidrager til programmets fleksibilitet. Brugen afhænger af konteksten.

question mark

Hvilket kodeeksempel demonstrerer korrekt, at en pointer kan omfordeles til at pege på en anden variabel, men at en reference ikke kan?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 11

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 11
some-alt