AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiger allgemein

Ein Thema von Huso · begonnen am 19. Jan 2006 · letzter Beitrag vom 19. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Huso

Registriert seit: 17. Nov 2003
Ort: Moers
19 Beiträge
 
#1

Zeiger allgemein

  Alt 19. Jan 2006, 16:01
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
GrEEtZ bY(e) HusO
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zeiger allgemein

  Alt 19. Jan 2006, 16:17
head^.next ist die eigentlich richtige Form. Der Compiler ist aber so "nett" und erlaubt dir, stattdessen auch head.next zu schreiben, da eindeutig ist, was du meinst.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Huso

Registriert seit: 17. Nov 2003
Ort: Moers
19 Beiträge
 
#3

Re: Zeiger allgemein

  Alt 19. Jan 2006, 16:36
joa, hmm, ok... aber was bedeutet "^" denn überhaupt?
GrEEtZ bY(e) HusO
  Mit Zitat antworten Zitat
JocalAreaNetwork

Registriert seit: 19. Aug 2005
35 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Zeiger allgemein

  Alt 19. Jan 2006, 16:57
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.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zeiger allgemein

  Alt 19. Jan 2006, 17:02
^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^)));
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Huso

Registriert seit: 17. Nov 2003
Ort: Moers
19 Beiträge
 
#6

Re: Zeiger allgemein

  Alt 19. Jan 2006, 17:50
Ah!! Hab's wohl verstanden... Danke schön!
GrEEtZ bY(e) HusO
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Zeiger allgemein

  Alt 19. Jan 2006, 18:02
Um ehrlich zu sein: Ich habe es auch erst jetzt gecheckt, als ich es dir erklärt hab.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Zeiger allgemein

  Alt 19. Jan 2006, 18:28
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 .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Zeiger allgemein

  Alt 19. Jan 2006, 19:22
Hobbala. Aber @ ist ein unärer Operator.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Zeiger allgemein

  Alt 19. Jan 2006, 19:56
Zitat von 3_of_8:
Aber @ ist ein unärer Operator.
Habe ich etwas anderes geschrieben ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
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