Ссылка C++ - что внутри?

Компьютеры программирование С++

Такой странный на первый взгляд вопрос. Недавно сдавал экзамен по ООП, но с преподом ОЧЕНЬ не сложилось, ненавидит он меня люто. Впрочем, он никого не любит, но меня особенно. Так вот, был задан такой вопрос: "Что является значением ссылки в С++?".
Первое что приходит в голову- с точки зрения высокого уровня значение переменной(объекта) на который указывает ссылка. А вот если спуститься ниже, то все совсем не очевидно. Есть ли там адрес объекта, на который он указывает, или это просто псевдоним и при компиляции происходит прямая подстановка значения\регистра\чего-то ещё? Я понимаю, что это зависит от компилятора, но тем не менее. Есть ли однозначный ответ с точки зрения машинного кода? Несколько семплов студии дизассемблил, там никакой памяти под ссылку не выделялось, но перебрать все варианты и все компиляторы не представляется возможным.

Примечание:
1)Ну ООП учили на примере С++. А вообще, без разницы. Заинтересовало, можно ли дать ответ вообще однозначно правильный с любой точки зрения.
2) sgx в этом и состоит вопрос, то что адрес представлен интом это очевидно, но есть ли там этот адрес, вернее когда вообще выделяется память под ссылку, и выделяется ли хоть когда-то. С учётом того, что к ссылке не применимо взятие адреса, наверное таки после компиляции ссылок нет, но это так, догадки. Регулируется ли это какими-нибудь стандартами, или хотя бы документируются где-то рекомендации по реализации компиляторами
Ответы:
Насколько я понимаю, это псевдоним
а почему на экзамене по ООП вам задают вопросы по какому-то конкретному языку, а не собственно по ООП?)
переформулирую: при чем здесь вообще ООП?) или я блондинка или это из категории "поезд ходит по рельсам, рельсы делают из стали, так давайте поговорим о процентном содержании углерода при ее легировании и ее характеристиках"
Однозначный ответ: внутри значение типа int, который является адресом, на который ссылается ссылка.
Если я вас правильно понял, конечно. Но такое ощущение, что нет, ибо вопрос довольно простой...
Скорее всего преподаватель имел ввиду, что ссылка в C++ есть альтернативное имя другого объекта. То есть не ссылка в общекомпьютерном смысле, а именно плюсовое понятие. В википедии более подробно.
Но если имелась ввиду работа с памятью, могу и про это рассказать.
И да, адрес - это не int, а size_t, иначе вас может ожидать неприятный сюрприз на 64-битной системе. И ничто не мешает взять адрес на ссылку.
>>Автор понимает, что такое ссылка и вопрос как раз в отличие её от указателя. И адрес ссылки вернет вам адрес объекта, на который ссылкается ссылка.
Ну отличие-то вроде очевидное - это именно что псевдоним того объекта, на который ссылка сделана, то есть по сути и есть сам объект. Единственное но, при передаче объекта в функцию через ссылку или при возврате через ссылку, на уровне ассемблера будет в функцию передаваться указатель на объект.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.