Difference between revisions of "Pointer/de"
From Lazarus wiki
Jump to navigationJump to searchLine 44: | Line 44: | ||
<br> | <br> | ||
<br> | <br> | ||
− | --[[User:Olaf|Olaf]] | + | --[[User:Olaf|Olaf]] 14:26, 9 September 2012 (UTC) |
[[Category:Pascal]] | [[Category:Pascal]] |
Revision as of 16:26, 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 14:26, 9 September 2012 (UTC)