j
не является указателем в любом случае.Ссылки - это псевдонимы, а не указатели.
j
в первом случае это другое имя для i
.
Во втором случае, предполагая [c ++ 17], повторно вызывая prvalue(например, int
), который не используется для инициализации значения, приводит к временной материализации.Если этот временный объект напрямую связан со ссылкой (в большинстве случаев), срок действия временного объекта увеличивается до срока действия ссылки.
Временные ссылки могут связываться с lvalue ссылками на const (то есть int const&
) или rvalue.ссылки (т.е. int&&
).