Технически, то, что вы спрашиваете, полностью зависит от системы / компилятора.На практике указатель и ссылка идентичны в реализации.
Ни один рациональный компилятор не будет обрабатывать
(*x).y
и
x->y
по-разному.Под крышками оба обычно отображаются на ассемблере как-то вроде
y(Rn)
Где Rn - регистр, содержащий адрес x, а y - смещение y в структуре.
Проблемав том, что C ++ построен на C, который, в свою очередь, является самым популярным языком программирования, когда-либо созданным.Эталонная конструкция - это обход неумелого метода передачи параметров в C.