Разыменование указатель на Delphi простой вопрос с помощью оператора разыменования. Когда указатель разыменовывается, он дает значение типа, на которое указывает указатель. Для нетипизированного указателя это означает, что вам нужно типаж, чтобы сообщить компилятору, какой тип обеспечиваемыми разыменования:
var
intPtr: PInteger;
charPtr: PChar;
ptr: Pointer;
int: Integer;
char: Char;
begin
// ..
int := intPtr^; // read as: int := the int pointed to by intPtr
char := charPtr^; // read as: char := the char pointed to by charPtr
// For untyped pointers you need to cast
int := Integer(ptr^);
char := Char(ptr^);
end;
Таким образом, если указатель является указателем на указатель, то разыменования он дает этот указатель, который в свою очередь может затем разыменовываются.
Вы можете использовать этот указатель разыменования для переменных и для членов классов и записей (как в вашем примере). Тем не менее, компилятор и язык также поддерживают автоматический разыменование в соответствующих случаях.
То есть, если у вас есть указатель на некоторый тип записи и хотите сослаться на конкретный член этой записи, вы можете использовать оператор разыменования или вы можете оставить разыменования оператор из (компилятор автоматически разыгрывается для вас).
Используя простой TPoint записи в качестве примера:
type
PPoint = ^TPoint;
TPoint = record
X, Y: Integer;
end;
var
pointPtr: PPoint;
myX, myY: Integer;
begin
//..
myX := pointPtr^.X;
myY := pointPtr^.Y;
// or you can simply write:
myX := pointPtr.X;
myY := pointPtr.Y;
end;
«Что мне нужно, это поваренная книга или несколько хороших примеров.» Пожалуйста, зайдите на эту страницу и внимательно прочитайте ее: http://stackoverflow.com/help/on-topic. Примечание. Пункт 4: * Вопросы, предлагающие нам рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой ресурс вне сайта не относятся к теме для переполнения стека, поскольку они, как правило, привлекают упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. * Задав здесь 30 вопросов, нам разумно ожидать, что вы это узнаете, не напомнив вам. –
Извините за использование слова «Книга». Мне нужно многократно напоминать вам огромное спасибо. Мне все еще нужна помощь в разыменовании записи. У вас есть? –
Возможно, вы могли бы проконсультироваться с учебником или документацией. Указатели всесторонне документированы. –