Как выглядит ссылка на C ++ с точки зрения памяти?
Дано:
int i = 42;
int j = 43;
int k = 44;
Изучая адреса переменных, мы знаем, что каждый из них занимает 4 байта (на большинстве платформ).
Однако, учитывая:
int i = 42;
int& j = i;
int k = 44;
Мы увидим эту переменнуюi
действительно занимает 4 байта, ноj
принимаетnone а такжеk
занимает снова 4 байта в стеке.
Что здесь происходит? Это выглядит какj
просто не существует во время выполнения. А как насчет ссылки, которую я получаю в качестве аргумента функции? Тотmust занять место в стеке ...
И в то время как мы на это находимся - почему я не могу определить массив или ссылки?
int&[] arr = new int&[SIZE]; // compiler error! array of references is illegal