は逆参照演算子を使用する簡単なことです。ポインタが逆参照されると、ポインタによって参照される型の値が返されます。ポインタは、それがどのターンでできる、そのポインタを生成する逆参照ポインタへのポインタであれば
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;
:型なしポインタについては、これはあなたが逆参照によって得られたされたどのような種類のコンパイラを伝えるために型キャストする必要があることを意味します参照解除されます。
この逆参照ポインターは、変数およびクラスとレコードのメンバー(例のように)に使用できます。ただし、コンパイラと言語は、自動逆参照をサポートしています。
あなたには、いくつかのレコード型へのポインタを持っているとそのレコードの特定のメンバーを参照したい場合、あなたはまだ(あなたは間接参照演算子を残すことができますコンパイラを間接参照演算子を使用したりすることができ、されますですあなたのために自動的に逆参照されます)。 「私は必要なのか、料理のいくつかの良い例である。」
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;
:例として、単純なTPointレコードを使用して
このページにアクセスして、非常に慎重に読んでください:http://stackoverflow.com/help/on-topic注意事項4:*書籍、ツール、ソフトウェアライブラリ、チュートリアル、その他のオフサイトリソーススタックオーバーフローの話題にはなりません。なぜなら、オピニオン回答とスパムを引き付ける傾向があるからです。代わりに、それを解決するために問題とそれまでに何が行われているかを説明してください。*ここで30以上の質問をした後、あなたに思い出させることなく、あなたがこれを知っていると期待するのは合理的です。 –
「Book」という言葉を使用して申し訳ありません。私は今思い出させる必要がありますし、またあなたに非常に感謝します。 私は依然としてレコードの逆参照に助けが必要です。あなたがいずれかを持っている? –
おそらく、教科書やドキュメンテーションを参照することができます。ポインタは包括的に文書化されている。 –