O referință în programare este un obiect care indică anumite date, dar nu le stochează. Obținerea unui obiect prin referință se numește dereferencing .
O referință nu este un pointer , ci este pur și simplu un alt nume pentru un obiect. Principala diferență dintre o referință și pointeri este că un pointer este un număr întreg și, prin urmare, operațiunile cu numere întregi sunt disponibile pentru acesta, în timp ce doar operațiunile de copiere și dereferire sunt disponibile pentru o referință.
În limbajele de programare, o referință poate fi implementată ca o variabilă care conține adresa unei locații de memorie . Unele limbaje de nivel înalt au, de asemenea, capacitatea de a utiliza referințe la obiecte atunci când transmit obiecte către și de la o subrutină.
Referințele în C++ trebuie să fie asociate cu un obiect. Astfel, nu există „referințe nule” (nu sunt asociate cu niciun obiect) în C++. Dereferentarea referințelor în C++ nu necesită un operator special. Astfel, în C++, referințele sunt o formă de transmitere directă a unei adrese în stivă, ocolind copierea și pointerii. La compilare, toate referințele la un obiect și numele acestuia sunt înlocuite cu un singur număr al acestui obiect.
În exemplul următor, parametrul x este transmis după valoare, iar rezultatul este transmis prin referință. Rezultatul funcției este plasat în rezultat:
#include <iostream> folosind namespace std ; // fără această intrare, ar trebui să anexăm „std::” la cout și endl pătrat gol ( int x , int și rezultat ) { rezultat = x * x ; } int main () { int y = 0 ; //Inițializați pătratul ( 3 , y ); cout << "y=" << y << endl ; //y=9 returnează 0 ; }Java nu are conceptul de pointer, iar C# folosește rar conceptul de referință. Dereferențiarea referințelor și preluarea adreselor obiectelor pentru a le atribui referințelor nu necesită un operator special.
Referințele în PHP sunt un mijloc de accesare a conținutului unei singure variabile sub diferite nume. Nu sunt ca pointerii C și nu sunt aliasuri de tabel de simboluri. În PHP, un nume de variabilă și conținutul său sunt lucruri diferite, astfel încât același conținut poate avea nume diferite. Cea mai apropiată analogie este numele și fișierele Unix - numele variabilelor sunt intrări de director, iar conținutul variabilelor sunt fișierele în sine. Legăturile în PHP sunt analoge cu legăturile hard (hardlinks) din sistemele de fișiere Unix.
<?php $a = 'text' ; $b =& $a ; print $b ; $a = 5 ; print $b ; text 5O referință în Erlang este un tip de date pentru un identificator unic, folosit doar pentru a efectua comparații și potrivirea modelelor [1] :
send_kv ( N , K , V ) -> Reference = make_ref (), % create reference { server , N } ! { put , self (), Reference , K , V }, % trimite cerere inclusiv referință primire { răspuns , Referință , ok } -> ok % răspuns la cerere după 5000 -> { eroare , timeout } % sau timeout end .Tipuri de date | |
---|---|
Ininterpretabil | |
Numeric | |
Text | |
Referinţă | |
Compozit | |
abstract |
|
Alte | |
subiecte asemănătoare |