Дано:
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
просто не существует во время выполнения. А как насчет ссылки, которую я получаю как аргумент функции? Это займет некоторое место в стеке...
И пока мы на нем - почему я не могу определить массив или ссылки?
int&[] arr = new int&[SIZE]; // compiler error! array of references is illegal