Поскольку int&*
на самом деле не имеет смысла, учитывая, что означает запись.
int
: тип данных x *
: указатель на данныетип x
x &
: ссылка на тип данных x
Мы можем объединить их в следующих общих формах:
int *
: указатель на int int &
: указатель на int
Я сделаю паузу, чтобы сказать, что, надеюсь, вы знаете разницу между прохождениемссылка и указатель .Если нет, см. Ссылку.
Однако у нас есть другая комбинация, которую мы можем попробовать:
int *&
: ссылка на указатель на int.
Мы можем использовать int *&
следующим образом: в вызывающей стороне:
int * myInt= 0;
myfunction(myInt);
в myFunction (int * & myInt):
int i;
myInt = &i;
myInt int в вызывающейбыть адресом i
ПРИМЕЧАНИЕ: установка myInt на адрес локальной переменной не очень хорошая идея, так как по истечении минуты myFunction()
сохраненные там данные будут уничтожены.Это только для примера
Наконец, есть под рукой вопрос: int&*
int &*
: указатель на ссылку на int
Теперь я предлагаю вам вопрос: если у нас есть ссылка на int, зачем нам указатель?Ответ: мы не делаем.Это не имеет смысла.
Итак, вкратце: int*&
и int&*
- это две разные вещи.Первый имеет смысл, если вы сломаете его, второй нет.