Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Trivial: Was ist ein Pointer? (https://www.delphipraxis.net/11290-trivial-ist-ein-pointer.html)

Chris1986 3. Nov 2003 16:41


Trivial: Was ist ein Pointer?
 
Hallo,
die Frage ist vielleicht trivial, aber was ist ein Pointer?

MfG
Christian

SirThornberry 3. Nov 2003 16:55

Re: Trivial: Was ist ein Pointer?
 
ein Pointer ist ein Zeiger *g*. Damit ist es möglich auf einen Speicherbereich zu "zeigen". Bestes Beispiel eines Pointertyps ist PChar. Wenn du einer Funktion einen "PChar" übergibst, so übergibst du eigentlich nur die Adresse wo die Zeischen im Speicher liegen. Und die funktion ändert/liest/etc. an dieser Stelle im Speicher herum. Durch zeiger kann man die Geschwindigkeit eines Programmes ziemlich steigern da man keine Kopie von einer Variablen übergibt (da müsste ja erst kopiert werden etc.) sonder man übergibt die Adresse im speicher und die Procedure oder was auch immer liest dann gleich das orginal und nicht irgendwo eine kopie... am besten du suchst dir irgend eine Beispiel da sieht man am ehesten durch. Es gibt dann auch noch Zeiger auf Strukturen etc... ziemlich komplexes Thema...

Mirilin 3. Nov 2003 16:55

Re: Trivial: Was ist ein Pointer?
 
:hi:

Zitat:

So what is a pointer? Simply put, a pointer is a variable that holds the address of anything in memory.
To concrete this definition, just keep in mind the following: everything used in an application is stored somewhere in the computer's memory, a pointer to that item simply points the program to that memory location. Because a pointer holds the address of another variable, it is said to point to that variable.
Pointers in Delphi

SirThornberry 3. Nov 2003 16:57

Re: Trivial: Was ist ein Pointer?
 
nochn kleines Beispiel was ich schon in nem anderen Thread mal gepostet hab
Delphi-Quellcode:
var gesamt: Array[0..1] of char;
    byte1, byte2: ^char;
begin
  byte1 := @gesamt[0]; //byte1 auf dein speicher von gesamt[0] zeigen lassen
  byte2 := @gesamt[1]; //byte2 auf dein speicher von gesamt[1] zeigen lassen
  byte1^ := 'a'; //an der stelle im speicher "a" schreiben
  byte2^ := 'b'; //an der stelle im speicher "b" schreiben
  self.caption := gesamt; //und siehe da, in gesamt steht später "ab"
end;

Chris1986 3. Nov 2003 17:04

Re: Trivial: Was ist ein Pointer?
 
Achso, ich hatte mir da wohl etwas noch komplexeres drunter vorgestellt *g*
MfG
Christian

CalganX 3. Nov 2003 17:41

Re: Trivial: Was ist ein Pointer?
 
Hi,
im Grunde ist es auch etwas komplizierter. Zwar ist der Sinn eines Pointers schnell erklärt, allerdings kannst du nicht einfach einen Pointer verwenden. Du musst Speicher reservieren und wieder freigeben etc.

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz