Указатель на другой указатель (уровни косвенности)? - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть один запрос. Эта тема хорошо известна многим, но я сталкивался с ней совсем недавно, и у меня, возможно, есть основной вопрос.

На этом сайте мы можем прочитать о косвенном обращении к памяти.

С этого сайта у меня есть понимание, что один уровень ненаправленности соответствует ссылочным типам, то есть переменная ссылочного типа имеет только указатель на место в памяти, где размещен объект. Вот как я понял уровень косвенности.

Вопрос : Правильно ли это понимание?

Если нет , что будет правильным пониманием? А что будет с двумя уровнями невменяемости?

Если да , каким будет второй уровень косвенности? Это будет указатель на другой указатель? Это так?

1 Ответ

0 голосов
/ 09 сентября 2018

У вас есть примеры для второго уровня косвенности. В C # подпись такая:

DoWork(ref MyType x)

требуется ссылка на тип ссылки. Что эквивалентно (как указано в статье, на которую вы ссылаетесь) неуправляемой подписи

DoWork(MyType** x);

Итак, указатель на указатель.

Ваше понимание верно - ссылочный тип обеспечивает как минимум один уровень косвенности, так как это указатель на объект. ref MyType x - это ссылка на ссылочный тип, так что это указатель на указатель на объект и, следовательно, второй уровень косвенности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...