это указатель на вызывающий объект (он возвращает значение r).
* это указатель на указатель вызывающего объекта (он возвращает значение адреса).
** это указатель на указатель указателя вызывающего объекта (???).
& *** это ссылка на указатель указателя на указатель вызывающего объекта (???).
std::vector<int>:: iterator i = vector1.begin();
i является указателем на его собственное значение r (возвращает свое собственное значение).
* я - указатель r-значения объекта, содержащегося в векторе (возвращает значение, указанное в & value).
** я - указатель на указатель r-значения объекта, содержащегося в векторе().
Я действительно смущен.
Здесь пример кода, где мы находим выражение & ** this:
class _Iter
{
private:
ListElem *pCurr;
const List *pList;
public:
_Iter(ListElem *pCurr, const List *list)
: pCurr_(pCurr), pList(list)
{}
T& operator*() { return pCurr_->data; }
T* operator->() { return &**this; }
};