Difference between revisions of "Pointer/de"
From Lazarus wiki
Jump to navigationJump to searchLine 19: | Line 19: | ||
p := nil; // Die Variable p vom Datentyp Pointer enthält jetzt keine Adresse mehr (die Variable p zeigt auf nichts). | p := nil; // Die Variable p vom Datentyp Pointer enthält jetzt keine Adresse mehr (die Variable p zeigt auf nichts). | ||
// Der Pointer p kann mit einer neuen Speicheradresse versehen werden. | // Der Pointer p kann mit einer neuen Speicheradresse versehen werden. | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
+ | <br><br> | ||
+ | Beispiel für die Verwendung eines Pointers an einem Record:<br> | ||
+ | <syntaxhighlight> | ||
+ | type | ||
+ | TNewRecord = record | ||
+ | Wert1: ShortString; | ||
+ | Wert2: ShortString; | ||
+ | Wert3: ShortString; | ||
+ | end; | ||
+ | var | ||
+ | p: ^TNewRecord; | ||
+ | i, j: integer; | ||
+ | begin | ||
+ | New(p); // erstellt einen Pointer und ein Object vom Typ TNewRecord. | ||
+ | p^.Wert1 := "Test"; // befüllt über den Pointer das Datenfeld des Objektes. | ||
+ | p^.Wert2 := "TestTest"; // befüllt über den Pointer das Datenfeld des Objektes. | ||
+ | p^.Wert3 := "TestTestTest"; // befüllt über den Pointer das Datenfeld des Objektes. | ||
+ | Dispose(p); // Gibt den Pointer und damit das Objekt frei. | ||
+ | // Damit sind alle Datenfelder und Daten des Pointers p gelöscht. | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 16:24, 9 September 2012
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
Eigenschaften eines Pointers (Zeigers):
- Ein Pointer ist ein Zeiger (eine Referenz) auf eine Speicherstelle.
- Ein Pointer ist ein ganzzahliger Datentyp zum speichern einer Arbeisspeicheradresse.
- Ein Pointer verweist auf die Anfangsadresse einer Variablen oder eines Objektes.
- Die Größe des Pointers liegt zwischen Longint oder Int64 .
- Die genaue Größe des Zeigers ist abhängig vom Zielbetriebssystem und dem Zielprozessor.
Beispiel für die Verwendung eines Pointers an einem einfachen Datentyp:
var
a, b: Integer; // a und b sind Integer-Variablen.
p: ^Integer; // p ist ein Pointer, der die Speicheradresse einer Variablen vom Datentyp Integer aufnehmen kann.
begin
a := 500; // Die Variable a vom Datentyp Integer erhält einen gültigen Wert zugewiesen.
p := @a; // Die Variable p vom Datentyp Pointer erhält jetzt die Adresse der Variablen a zugewiesen.
b := p^; // Die Variable b vom Datentyp Integer holt sich über die Adresse im Pointer p den Wert aus der Variablen a.
p := nil; // Die Variable p vom Datentyp Pointer enthält jetzt keine Adresse mehr (die Variable p zeigt auf nichts).
// Der Pointer p kann mit einer neuen Speicheradresse versehen werden.
end;
Beispiel für die Verwendung eines Pointers an einem Record:
type
TNewRecord = record
Wert1: ShortString;
Wert2: ShortString;
Wert3: ShortString;
end;
var
p: ^TNewRecord;
i, j: integer;
begin
New(p); // erstellt einen Pointer und ein Object vom Typ TNewRecord.
p^.Wert1 := "Test"; // befüllt über den Pointer das Datenfeld des Objektes.
p^.Wert2 := "TestTest"; // befüllt über den Pointer das Datenfeld des Objektes.
p^.Wert3 := "TestTestTest"; // befüllt über den Pointer das Datenfeld des Objektes.
Dispose(p); // Gibt den Pointer und damit das Objekt frei.
// Damit sind alle Datenfelder und Daten des Pointers p gelöscht.
end;
--Olaf 07:51, 8 September 2012 (UTC)