Там какой-либо путь состоит в том, чтобы найти адрес ссылки?
Создание его более конкретный: адрес самой переменной а не адрес переменной это инициализируется с.
Это возможно, но не строго использующий C++. Так как ссылка передается как параметр функции, ее значение будет сохранено на стеке или в регистре. Это - зависимый аппаратной архитектуры. Доступ к этим значениям потребует встроенного ассемблерного кода. Консультируйтесь со справочником для процессора, который Вы используете для определения поведения стека и адресов регистра. Повреждение стека или регистров может очень легко вызвать BSOD, потерю данных или даже непоправимый урон Вашей системе. Действуют с экстремальной осторожностью.
//YES reference varies
//but a little trick in the compiler
int i = 333;
int j = 444;
int &ref = i; //ref=i value
int* p = nullptr;
printf("ref=%d\n", ref); //333 i value
*(&p + 3) = &j; //&ref=j
printf("ref=%d\n", ref); //444 j value
От другого экземпляра этого того же вопроса: $8.3.2/3 - "Это является неуказанным, требует ли ссылка устройства хранения данных (3.7)"..
, Таким образом, стандарт C++ позволяет конструктору компилятора/времени выполнения выбирать, живет ли ссылка в отдельной ячейке памяти. Однако обратите внимание, что, если это действительно живет в отдельной ячейке памяти, Вы не можете найти ее адрес стандартно-совместимым способом. Не делайте этого.
при взятии адреса ссылки, по определению в стандарте C++, Вы получите адрес того, что это отсылает к, а не адрес ссылки, если на самом деле, что ссылка даже существует как отдельный объект в среде выполнения или нет.