Разъясните пожалуйста, что значит *&?

Это передача ссылки по адресу? Зачем она нужна, где применяется, чем отличается от обычной ссылки или указателя.


Ответы (1 шт):

Автор решения: AlexGlebe

int - целое число

int * - указатель на целое число

int * & - ссылка на указатель на целое число

int i ; // переменная целого числа
int * p = & i ; // указатель на переменную i
int * & s = p ; // ссылка на указатель p

int j ; // другая переменная целого числа
s = & j ; // меняет указатель который по ссылке указывал на p на адрес 
          // другой переменной. p раньше указывал на i , теперь на j

Ссылка на указатель применяется например как аргумент в функции, которая меняет этот указатель.

int i ;
int j ;
int * p = & i ;
...
void fun(int * & x) {
  x = & j ; }
... 
fun(p); // меняет указатель p, чтобы указывал на j
→ Ссылка