Почему используется *& вместо простого указателя и как это работает?

Ссылка на указатель. При передаче по ссылке, в функцию передаётся, как бы, сам объект, а не его копия (в случае передачи по значению). Если передаётся копия, то все изменения объекта в функции никак не отразятся на оригинале. У тебя, в методе D, значение указателя mas меняется:
, поэтому, чтобы изменения сохранились, нужно передавать указатель в функцию по ссылке.

0