Другие языки программирования и технологии

C++ указатель на ссылку, ссылка на указатель что можно создать и пример кода если нетрудно.

int a;
int *p = &a; // указатель
int &r = a; // ссылка на a
int *& rp = p; // ссылка на указатель p

int &t = *p; // А это бред, потому что ссылка может быть на переменную, *p (оператор разыменования указателя) дает значение переменной, а вовсе не переменную. Поэтому компилятор матерится.

а в первом варианте
int u=1;
int &t=u;
int *p=&t;
У тебя не указатель на ссылку, а указатель на переменную u, которую дает ссылка.
Manny Fozilov
Manny Fozilov
21 360
Лучший ответ
HANDLE, int &t = *p; // А это бред, потому что ссылка может быть на переменную, *p (оператор разыменования указателя) дает значение переменной, а вовсе не переменную. Поэтому компилятор матерится

- неверно. Всё канает.

Оператор разыменования возвращает ссылку, а не значение. Если бы возвращалось значение, то любое косвенное обращение к членам сложного типа вызывало бы копирование экземпляра, а полиморфизм можно было бы выкидывать в топку.

Указатель на ссылку создать нельзя, ибо ссылка - вообще не объект, с точки зрения языка у неё нет собственного значения. Ссылка на указатель - int *& rp = n;
& - ссылка, говоря проще, это можно перевести, как адрес, т. е. выражение &x - это будет адрес переменной х.

* - это указатель, который можно перевести, как "по адресу"

Т. е если указателю *p присвоить значение x, то мы получим указатель на эту ссылку:

int x, *p;

x=10;
p=&x;

*p=*p+1; // после применения такого выражения, переменная x станет 11,тому что мы
// присвоили указателю p значение адреса переменной x и обратились напрямую
// к этому адресу (*p=*p+1), а не к его локальной копии