y
не является ни объектом, ни функцией, поэтому не имеет адреса.Это ссылка на переменную x
, что означает, что всякий раз, когда вы используете y
, это как если бы вы использовали x
.Обратите внимание, что это вовсе не требует, чтобы y
содержал указатель на x
.
В функции main
, y
, вероятно, вообще не существует в сгенерированном исполняемом файле;компилятор может тривиально заменить все случаи использования y
, как если бы они были использованием x
.
В вашей функции bar
(опять же, если предположить, что он действительно существует в сгенерированном исполняемом файле и не является полностью встроенным)x
, который является ссылкой, должен где-то существовать, потому что он должен ссылаться на объект вне области действия функции.Такие ссылки обычно реализуются как указатели, но разработчики могут свободно реализовывать ссылки, однако они лучше всего подходят.