Forskellen mellem pointer og reference
Forfatter:
Laura McKinney
Oprettelsesdato:
1 April 2021
Opdateringsdato:
1 Juli 2024
![How to cut a woman’s haircut! Hair cutting! Pixie!](https://i.ytimg.com/vi/ZSGWfSjpR_I/hqdefault.jpg)
Indhold
Begge “pointer” og “reference” bruges til at pege eller henvise til en anden variabel. Men den grundlæggende forskel mellem dem begge er, at en markørvariabel peger på en variabel, hvis hukommelsesplacering er gemt i den. Referencevariablen er et alias for en variabel, der er tildelt den. Sammenligningstabellen nedenfor udforsker de andre forskelle mellem en markør og en reference.
- Sammenligningstabel
- Definition
- Vigtige forskelle
- Konklusion
Sammenligningstabel
Grundlag for sammenligning | Pointer | Reference |
---|---|---|
Grundlæggende | Markøren er hukommelsesadressen til en variabel. | Henvisningen er et alias for en variabel. |
Vender tilbage | Markørvariablen returnerer den værdi, der er placeret på den adresse, der er gemt i markørvariablen, og som er markeret med markørens tegn *. | Referencevariablen returnerer adressen på den variabel, der er forudgået af referencetegnet &. |
Operatører | *, -> | & |
Nul reference | Markørvariablen kan henvise til NULL. | Referencevariablen kan aldrig henvise til NULL. |
Initialisering | En uinitialiseret markør kan oprettes. | En uinitialiseret reference kan aldrig oprettes. |
Initialiseringstidspunkt | Markørvariablen kan initialiseres på ethvert tidspunkt i programmet. | Referencevariablen kan kun initialiseres på tidspunktet for dens oprettelse. |
geninitialisering | Markørvariablen kan geninitialiseres så mange gange som krævet. | Referencevariablen kan aldrig geninitialiseres igen i programmet. |
Definition af Pointer
En "markør" er en variabel, der indeholder hukommelsesplacering for en anden variabel. De operatører, der bruges af markørvariablen, er * og ->. Erklæringen for markørvariablen indeholder basisdatatypen efterfulgt af '*' tegnet og variabelnavnet.
type * var_navn;
Lad os forstå markøren ved hjælp af et eksempel.
int a = 4; int * ptr = & a; cout <mens referenceoperatøren er &.
Bemærk:
Java understøtter ikke pointers.
Konklusion
Markøren og referencen begge bruges til at pege eller henvise til en anden variabel. Men begge er forskellige i deres brug og implementering.