W niskopoziomowych językach takich, jak C++, referencje są implementowane jako oferująca mniej możliwości, ale bezpieczniejsza odmiana wskaźników. Podobnie jak i one, referencje wskazują tutaj na pewien obszar pamięci z tą różnicą, że nie mogą być modyfikowane. Innymi słowy, już podczas tworzenia zmiennej będącej referencją musimy określić, na co będzie ona wskazywać, a ponadto referencji nie wolno później modyfikować.

Referencje do obiektów

right|thumb|300px|W wielu językach zmienne obiektowe są jedynie referencjami do obiektów znajdujących się na stercie.

W wielu obiektowych językach wysokiego poziomu (np. Java) programista nie może samodzielnie zarządzać pamięcią. Sposób jej organizacji zależy od implementacji konkretnej maszyny wirtualnej. Wyróżniony jest w niej obszar zwany stertą, w której przechowywane są wszystkie utworzone przez aplikację obiekty. Zmienne obiektowe nie przechowują bezpośrednio obiektów, a jedynie referencje do sterty.