einen Zeigers in Delphi Dereferenzierung ist eine einfache Sache, den Dereferenzierungsoperator verwenden. Wenn ein Zeiger dereferenziert wird, liefert er einen Wert des Typs, auf den der Zeiger verweist. Für einen nicht typisierten Zeiger bedeutet dies, müssen Sie typisieren den Compiler zu sagen, welche Art von der ergab sich dereferencing:
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;
Also, wenn ein Zeiger ist ein Zeiger auf einen Zeiger dann dereferencing es diesen Zeiger ergibt, was wiederum dann dereferenziert werden.
Sie können diesen Dereferenzierungszeiger für Variablen und für Mitglieder von Klassen und Datensätzen verwenden (wie in Ihrem Beispiel). Der Compiler und die Sprache unterstützen jedoch auch automatische Dereferenzierung wo erforderlich.
Das heißt, wenn Sie einen Zeiger auf einen Datensatztyp haben und wünschen ein bestimmtes Mitglied des dass Datensatz verweisen, können Sie immer noch den Operator dereferenzieren verwenden oder Sie die Dereferenzierungsoperator auslassen können (den Compiler automatisch Dereferenzierung für Sie).
einen einfachen TPoint Datensatz als Beispiel: „Was ich brauche, ist Kochbuch oder einige gute Beispiele“
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;
Bitte besuchen Sie diese Seite und lesen Sie sie aufmerksam durch: http://stackoverflow.com/help/on-topic Hinweis 4: * Fragen, die uns auffordern, ein Buch, ein Tool, eine Softwarebibliothek, ein Lernprogramm oder eine andere Offsite-Ressource zu empfehlen oder zu finden sind off-topic für Stack Overflow, da sie dazu neigen, eigensinnige Antworten und Spam zu bekommen. Beschreiben Sie stattdessen das Problem und was bisher getan wurde, um es zu lösen. * Nachdem Sie mehr als 30 Fragen gestellt haben, ist es für uns vernünftig zu erwarten, dass Sie das wissen, ohne Sie daran erinnern zu müssen. –
Tut mir leid, dass ich das Wort "Buch" benutze. Ich muss dich immer wieder erinnern, vielen Dank. Ich brauche immer noch Hilfe bei der Dereferenzierung der Aufzeichnung. Hast du welche? –
Vielleicht könnten Sie ein Lehrbuch oder die Dokumentation konsultieren. Zeiger werden ausführlich dokumentiert. –