En referens i programmering är ett objekt som pekar på viss data men som inte lagrar den. Att få ett objekt genom referens kallas dereferencing .
En referens är inte en pekare utan är helt enkelt ett annat namn på ett objekt. Huvudskillnaden mellan en referens och pekare är att en pekare är ett heltal och därför finns operationer med heltal tillgängliga för den, medan endast kopierings- och dereferenceoperationer är tillgängliga för en referens.
I programmeringsspråk kan en referens implementeras som en variabel som innehåller adressen till en minnesplats . Vissa högnivåspråk har också förmågan att använda objektreferenser när objekt skickas till och från en subrutin.
Referenser i C++ måste vara associerade med något objekt. Det finns alltså inga "nullreferenser" (inte associerade med något objekt) i C++. Avlägsnande av referenser i C++ kräver ingen speciell operatör. Således, i C++, är referenser en form av att skicka en adress till stacken direkt, förbi kopiering och pekare. Vid kompilering ersätts alla referenser till ett objekt och dess namn med ett enda nummer av detta objekt.
I följande exempel skickas parametern x av värde och resultatet skickas med referens. Resultatet av funktionen placeras i resultat:
#include <iostream> använder namnutrymme std ; // utan denna post skulle vi behöva lägga till "std::" till cout och endl tom kvadrat ( int x , int & resultat ) { resultat = x * x ; } int main () { int y = 0 ; //Initiera kvadrat ( 3 , y ); cout << "y=" << y << endl ; //y=9 returnera 0 ; }Java har inte begreppet pekare, och C# använder sällan begreppet referens istället. Att borthänvisa referenser och ta objektadresser att tilldela referenser kräver ingen speciell operatör.
Referenser i PHP är ett sätt att komma åt innehållet i en enskild variabel under olika namn. De är inte som C-pekare och är inte symboltabellalias. I PHP är ett variabelnamn och dess innehåll olika saker, så samma innehåll kan ha olika namn. Den närmaste analogin är Unix-filnamn och filer - variabelnamn är katalogposter och variabelinnehåll är själva filerna. Länkar i PHP är analoga med hårda länkar (hardlinks) i Unix-filsystem.
<?php $a = 'text' ; $b =& $a ; skriv ut $b ; $a = 5 ; skriv ut $b ; text 5En referens i Erlang är en datatyp för en unik identifierare, som endast används för att utföra jämförelser och mönstermatchning [1] :
send_kv ( N , K , V ) -> Reference = make_ref (), % skapa referens { server , N } ! { put , self (), Reference , K , V }, % send request inklusive referens motta { reply , Reference , ok } -> ok % svar på begäran efter 5000 -> { error , timeout } % eller timeout slut .Datatyper | |
---|---|
Otolkbart | |
Numerisk | |
Text | |
Referens | |
Sammansatt | |
abstrakt | |
Övrig | |
Relaterade ämnen |