Функция
vector.at () вернет ссылку на элемент, myspa_p - указатель, так что же означает myspa_p = & myspa.at (0)?
Когда вывозвращать ссылку, не думать о ссылке как о отдельном типе / объекте данных, на который может указывать указатель - есть только указатель myspa_p
и вектор myspa
и никакой загадочной третьей «вещи».Вместо этого думайте о ссылке как о способе предоставления доступа к объекту (здесь первый элемент myspa
) на месте, без его копирования в любом месте.
Итак, myspa.at(0)
предоставляет прямой доступ к исходномуОбъект Myspa внутри вектора myspa
.Затем, добавление ведущего &
- формирующего &myspa.at(0)
- просто запрашивает адрес этого начального объекта - следовательно, адрес может быть сохранен в указателе myspa_p
.