| Autor |
Beitrag |
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 31.05.03 17:16
Hallo,
ich habe schon mehrer Tutors über Pointer gelesen(auch das hier, was man hier unter Tutors findent:))
aber den sin und zweck habe ich immer noch nicht so verstanden.
könnte mir jemmand den sin warum ich pointer verwenden sollte, anahnd eines beispieles erklären ?
z.b. ohne pointer mehre zeilen lang mit pointer weniger zeilen:)
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Sa 31.05.03 17:40
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 31.05.03 18:12
habe ich schon gelesen.
aber ich hätte gerne ein beispiel wo man es genau erkennen kann.
weil da steht nicht drin, warum ich diese pointer verwenden sollte(wenn doch, habe ich es falschverstanden)
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 31.05.03 19:51
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| type TMyForm = Class(TForm) .... end;
var MyForm :TMyForm; |
Hier siehst du ein simples Beispiel von Zeigern - allerdings nicht so offensichtlich. In delphi ist so ziemlich alles - gut versteckt - mit Zeigern realisiert. Die Opperatoren @ und ^ fehlen natürlich.
grez
msch
Moderiert von Marc: Code- durch Delphi-Tag ersetzt.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 31.05.03 22:53
ich meinte es anderes mit dem beispiel:
es gibt doch sicherlich fuktionen die mit pointer kürtzer oder länger sind.
einfach nur mal ein vergleich.
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
TomT
      
Beiträge: 116
Suse 9.1 WinXP
D6 Pers
|
Verfasst: Sa 31.05.03 23:02
_________________ ...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 31.05.03 23:26
also den sin und zweck sehe ich immer noch nicht, warum ich nun pointer verwenden sollte oder auch nicht.
was gibt es denn da für Vorteile bzw. Nachteile ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
TomT
      
Beiträge: 116
Suse 9.1 WinXP
D6 Pers
|
Verfasst: Sa 31.05.03 23:29
Erheblicher Vorteil: Je nach Datenmenge, sehr grosse Einsparung der Rechenzeit. Sprich: das Prog läuft wesentlich schneller!
Nachteil: Ein wenig Abstraktionsvermögen um mit den Pointern fehlerfrei Arbeiten zu können. Ist aber eigentlich gar nicht so schwierig.
_________________ ...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 31.05.03 23:40
was meinst du mit Abstraktionsvermögen ???
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
TomT
      
Beiträge: 116
Suse 9.1 WinXP
D6 Pers
|
Verfasst: Sa 31.05.03 23:50
Wenn man Pointer hin und her übergibt ist es nicht immer so einfach den überblick zu behalten. Weil man komplette Array- und/oder Recordinhalte nur über den Pointer(bzw die Speicheradresse) anspricht. Klingt koplizierter als es ist, kann aber bei umfangreichereren Sachhen (gerade da wo die Pointer unglaublich ins Gewicht fallen) unter Umständen ein wenig irritieren.
Zum Beispiel nimmst du die Leveldaten in einem Spiel. Die sprichst du komplett mit einem Pointer an, nun hast du mehrere Unterprozeduren, die jeweils mit Pointern auf speziele Teile des Datensatzes verweisen, die wiederum aus Pointern bestehen und dann irgendwann auf die eigentlichen Werte gehen, und das alles wieder zurück.
Lass dich nicht abschrecken!
_________________ ...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 01.06.03 03:27
Vorteile / Nachteile, das kann man so nicht sagen. Es kommt immer auf die Situation drauf an. Soll heißen, Pointer sind nicht immer der Weißheit letzter Schluß.
|
|
TomT
      
Beiträge: 116
Suse 9.1 WinXP
D6 Pers
|
Verfasst: So 01.06.03 04:05
Nein, Pointer sind nicht das ultimative Werkzeug. Aber in bestimmten Situationen sind sie ungemein hilfreich.
_________________ ...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: So 01.06.03 18:03
| Zitat: |
Aber in bestimmten Situationen sind sie ungemein hilfreich
|
könntes du(ihr) mal beispiele machen ????
Moderiert von tommie-lie: Delphi- durch Quote-Tags ersetzt
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Nimloth
      
Beiträge: 20
|
Verfasst: Fr 13.06.03 14:19
Titel: Pointer....
Hallo
Also erstens: Wenn ein Objekt instanziert wird, erhalten wir darauf eine Referenz, sprich einen Pointer (Zeiger). Warum? Es ist ökologischer ein Zeiger im Speicher herumzureichen, als immer alle Weerte herum zu kopieren. Anwendung? Übergabge Parameter an eine Routine. Aber das wurde schon erwähnt.
Beispiel einer Anwedung: LinkdList, Binary Tries etc.
Grüsse und schönes Wochenende (bald baaald *gespanntAufDieUhrSieht*
 )
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Fr 13.06.03 14:48
Ich hatte neulich eine Anwendung dafür:
Als ich für Luckie seine Dateiklasse callback-fähig gemacht habe, musste der Funktion ein Record übergeben werden. Dieser allerdings nur als Integer, bzw Cardinal, weil Messages nunmal keine beliebigen Datentypen übernehmen können. Also habe ich einen Pointer (der ja ncihts anderes als ein Integer ist) auf das Record übergeben, und so kann man durch dereferenzieren der Funktion einen Record übergeben, obwohl das auf normalen Weg nicht möglich wäre.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Fr 13.06.03 15:51
Ein anderer Anwendungsfall für Zeiger ist, wenn man im Voraus (Zur Programmierzeit) nicht weiß, wieviel Daten ankommen. Dann reserviert man zur Laufzeit eben die Speicher, den man braucht, auf den der Zeiger dann verweist.
Ein anderes Beispiel:
Bei Records, deren Größe dynamisch ausfällt kann man nur mit Zeigern ordentlich verarbeiten.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| type PRec = ^TRec; TRec = packed record Count: Integer; Data: array[0..0] of TPoint; end;
var P: PRec; I: Integer; begin P := GetRecFromObj; for I := 0 to P^.Count - 1 do P^.Data[I].X := 10 + I; end; |
_________________ Ist Zeit wirklich Geld?
|
|
maximus
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: Fr 13.06.03 16:56
...ganz zu schweigen von prozedualen-pointern. Da wirds dann richtig praktisch. Das sind variablen, in denen sich die adressen auf proceduren befinden, die man dann dynamisch aufrufen kann, ohne den auf ruf fest verdrahtet haben zu müssen...Bestes beispiel -> EVENTS
Letztendlich führt kein weg an pointern vorbei...also lernen, lernen, popernen 
_________________ mfg.
mâximôv
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 13.06.03 19:14
kennt ihr nochmehr tutor zu pointern ? auser das von tino ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Nimloth
      
Beiträge: 20
|
Verfasst: Sa 14.06.03 13:43
Hallo
Hier gibts einige Tuts die nicht schlecht sind (habe zwar nicht alle angesehen)
cslibrary.stanford.edu/
Grüsse & noch ein schönes Wochenende
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 14.06.03 17:13
sind, aber alle in englisch, gibt es da keine deutschen tutors ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|