Chápu to správně tak, že pointer a reference je interně to samé - jen adresa, nic víc (žádné tagy...) a liší se od sebe pouze tím, jak s nimi řeší překladač ownership model? Tj. u pointerů na to úplně kašle, kdežto u referencí rekurzivně kontroluje předávání, viditelnost a tak dál?
Záleží na typu. U polí je pointer totéž, co v C, kdežto reference obsahuje navíc informaci o délce. Například reference:
slice: &[isize]
má jako C ekvivalent:
struct {
int *ptr;
unsigned len;
} slice;
Podobně reference na traitové objekty obsahují pointery dva: jeden na daný objekt a druhý na konkrétní trait (ekvivalent vtable v C++)-