Jak wygląda odwołanie do C ++, pod względem pamięci?

Dany:

int i = 42;
int j = 43;
int k = 44;

Patrząc na adresy zmiennych wiemy, że każdy z nich zajmuje 4 bajty (na większości platform).

Jednak biorąc pod uwagę:

int i = 42;
int& j = i;
int k = 44;

Zobaczymy tę zmiennąi rzeczywiście zajmuje 4 bajty, alej trwaŻaden ik zajmuje ponownie 4 bajty na stosie.

Co tu się dzieje? To wygląda jakj po prostu nie istnieje w środowisku wykonawczym. A co z odniesieniem, które otrzymuję jako argument funkcji? Żemusi trochę miejsca na stosie ...

A skoro już o tym mowa - dlaczego nie mogę zdefiniować tablicy lub referencji?

int&[] arr = new int&[SIZE]; // compiler error! array of references is illegal