Декларатор ссылки Lvalue: &
Содержит адрес объекта, но синтаксически ведет себя подобно объекту.
Синтаксис
lvalue-reference-type-id
:
type-specifier-seq
&
attribute-specifier-seq
optptr-abstract-declarator
opt
Замечания
Ссылку lvalue можно считать другим именем для объекта. Объявление ссылки lvalue состоит из необязательного списка спецификаторов, за которым следует декларатор ссылки. Ссылка должна быть инициализирована и не может быть изменена.
Любой объект, адрес которого можно преобразовать в некоторый тип указателя, можно также преобразовать в аналогичный ссылочный тип. Например, любой объект, адрес которого можно преобразовать в тип char *
, можно также преобразовать в тип char &
.
Не путайте объявления ссылок с использованием оператора address-of. Если идентификатор &
предшествует типу, например int
или char
, идентификатор объявляется в качестве ссылки на тип. Если &
идентификатор не предшествует типу, использование — адрес оператора.
Пример
В следующем примере демонстрируется декларатор ссылки путем объявления объекта Person
и ссылки на этот объект. Поскольку rFriend
является ссылкой на myFriend
, при обновлении любой из этих переменных изменяется один и тот же объект.
// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;
struct Person
{
char* Name;
short Age;
};
int main()
{
// Declare a Person object.
Person myFriend;
// Declare a reference to the Person object.
Person& rFriend = myFriend;
// Set the fields of the Person object.
// Updating either variable changes the same object.
myFriend.Name = "Bill";
rFriend.Age = 40;
// Print the fields of the Person object to the console.
cout << rFriend.Name << " is " << myFriend.Age << endl;
}
Bill is 40
См. также
Ссылки
Аргументы функции ссылочного типа
Функция ссылочного типа возвращается
Ссылки на указатели
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по