2013-09-13 2 views

ответ

2

Это просто приложение нескольких операторов-указателей. Вы можете поставить скобки, чтобы видеть это яснее (хотя я не знаю, является ли это правильный код Rust):

&(@(~Point { x: 10f, y: 20f })) 

Это действительно заимствованы указатель на управляемый ящик, который содержит уникальный указатель на структуру.

Такое, конечно, бесполезно в реальном коде, но оно демонстрирует концепцию разыменования.

+2

«указатель брать» == указатель * * решений для '~' и '@': они выделить место в куче. (И этот код абсолютно прав.) – huon

1

Выражение является ссылкой на управляемый указатель на принадлежащий ему указатель на Точку.

Приговор выше, дает хорошую подсказку:

Вы можете написать выражение, разыменовывает любое количество указателей автоматически. Например, если вы чувствуете склонность, вы можете написать что-то глупое, как

Это просто, чтобы продемонстрировать, что вы можете иметь указатель на какой-то указатель. Код, безусловно, глупый в том, что этот фрагмент не использует концепцию, а просто демонстрирует синтаксис.

Для больше указателей на указатели, вы можете наслаждаться этим вопрос: How do pointer to pointers work in C?

 Смежные вопросы

  • Нет связанных вопросов^_^