System.Pointer

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

type Pointer = ^Pointer;

C++

typedef void*                Pointer;          //

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
pointer
typedef
public
System.pas
sysmac.h
System System

Beschreibung

Adresse eines Bytes im Arbeitsspeicher.

Ein void-Zeiger repräsentiert die Adresse eines Bytes im Arbeitsspeicher. Solche Zeiger können nicht dereferenziert werden, weil ihnen keine Typinformationen zugeordnet sind. Ein void-Zeiger kann aber in einen typisierten Zeiger umgewandelt und anschließend dereferenziert werden.

Mit dem Spezifizierer register deklarierte Variablen befinden sich nicht im Hauptadressraum und können nicht dereferenziert werden.

Abhängig vom Zeigerwert können Dereferenzierungsoperationen verschiedene Effekte haben:

Zeigerwert Dereferenzierungseffekt
Adresse von Daten Erzeugt den Datenwert.
Adresse einer Funktion/Prozedur Erzeugt einen Aufruf einer Funktion/Prozedur.
nil/NULL Erzeugt einen Fehler oder eine Exception. Siehe EAccessViolation.
invalid Undefiniertes Ergebnis. Gibt einen Software-Fehler an. Siehe EInvalidPointer.

Operatoren für die Zeigerreferenzierung/-dereferenzierung:

Delphi C++
Referenzierung @object &object
Dereferenzierung object_pointer^ *object_pointer


Die Größe des Zeigers hängt vom Betriebssystem und/oder dem Prozessor ab. Auf 32-Bit-Plattformen wird ein Zeiger in 4 Byte als 32-Bit-Adresse gespeichert. Auf 64-Bit-Plattformen wird ein Zeiger in 8 Byte als 64-Bit-Adresse gespeichert.

Siehe auch