Como uma referência C ++ se parece com memória?

Dado:

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

Observando os endereços das variáveis, sabemos que cada um ocupa 4 bytes (na maioria das plataformas).

No entanto, considerando:

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

Vamos ver essa variáveli de fato leva 4 bytes, masj levaNenhum ek leva novamente 4 bytes na pilha.

O que esta acontecendo aqui? Parece quej é simplesmente inexistente em tempo de execução. E que tal uma referência que recebo como argumento de função? quedevo ocupe algum espaço na pilha ...

E enquanto estamos nisso - por que não posso definir uma matriz ou referências?

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

questionAnswers(8)

yourAnswerToTheQuestion