Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeiger allgemein (https://www.delphipraxis.net/61294-zeiger-allgemein.html)

Huso 19. Jan 2006 16:01


Zeiger allgemein
 
Hallo,
Kann mir bitte jmd erklären, was genau das "^" bei Pointern bedeutet?
Das Prinzip der Pointer hab ich im allgemeinen verstanden, aber ich habe Probleme das Element und den Zeiger zu unterscheiden...

Bsp: (Wo ist der unterschied?)
Delphi-Quellcode:
type
  PElement = ^TElement;
  TElement = RECORD
           number: integer;
           next,back: PElement;
           END;

var
  head: PElement;

----------------------

  head^.next
  head.next
  head.number
  head^.number
  --> wo liegen die unterschiede?
Danke schonmal, Huso

Chewie 19. Jan 2006 16:17

Re: Zeiger allgemein
 
Delphi-Quellcode:
head^.next
ist die eigentlich richtige Form. Der Compiler ist aber so "nett" und erlaubt dir, stattdessen auch
Delphi-Quellcode:
head.next
zu schreiben, da eindeutig ist, was du meinst.

Huso 19. Jan 2006 16:36

Re: Zeiger allgemein
 
joa, hmm, ok... aber was bedeutet "^" denn überhaupt?

JocalAreaNetwork 19. Jan 2006 16:57

Re: Zeiger allgemein
 
In dem Fall bedeutet das, dass du das Element ansprichst, auf den dein Zeiger zeigt, also das Element, das an der Speicheradresse abgelegt ist, die in deinem Zeiger gespeichert ist.

3_of_8 19. Jan 2006 17:02

Re: Zeiger allgemein
 
^irgendwas ist ein unärer Operator, der einen Pointer auf "irgendwas" zurückgibt.
irgendwas^ greift direkt auf "irgendwas" zu.

Den Unterschied dürfte man sehen, wenn man schreibt:

Delphi-Quellcode:
var irgendwas: String[10];

pirgendwas:=^irgendwas;

showmessage(inttostr(sizeof(irgendwas)));
showmessage(inttostr(sizeof(pirgendwas)));
showmessage(inttostr(sizeof(pirgendwas^)));

Huso 19. Jan 2006 17:50

Re: Zeiger allgemein
 
Ah!! ;) Hab's wohl verstanden... Danke schön!

3_of_8 19. Jan 2006 18:02

Re: Zeiger allgemein
 
Um ehrlich zu sein: Ich habe es auch erst jetzt gecheckt, als ich es dir erklärt hab.

Khabarakh 19. Jan 2006 18:28

Re: Zeiger allgemein
 
Zitat:

Zitat von 3_of_8
^irgendwas ist ein unärer Operator, der einen Pointer auf "irgendwas" zurückgibt.

^x gibt es höchstens bei der Typdeklaration, und da würde ich ihn eher als Modifier bezeichnen. Der Operator, den du meinst, ist @.

PS: ^x gibt es noch in irgendeiner Beziehung mit Chars, den Rest habe ich aber vergessen :wink: .

3_of_8 19. Jan 2006 19:22

Re: Zeiger allgemein
 
Hobbala. Aber @ ist ein unärer Operator.

Khabarakh 19. Jan 2006 19:56

Re: Zeiger allgemein
 
Zitat:

Zitat von 3_of_8
Aber @ ist ein unärer Operator.

Habe ich etwas anderes geschrieben :stupid: ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.
Seite 1 von 2  1 2      

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