Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Sa 31.05.03 17:40 

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 31.05.03 19:51 
ausblenden 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 user profile iconMarc: Code- durch Delphi-Tag ersetzt.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 116

Suse 9.1 WinXP
D6 Pers
BeitragVerfasst: Sa 31.05.03 23:02 
Pointer sind schneller, weil nur die Speicheradresse kopiert wird und nicht alle Werte.

Zum Beispiel bei der Procedure glVertex von OpenGL:

ausblenden Delphi-Quelltext
1:
glVertex3f(Dreieck[0],Dreieck[1],Dreieck[2]);					


ausblenden Delphi-Quelltext
1:
glVertex3fv(@Dreieck);					

_________________
...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 116

Suse 9.1 WinXP
D6 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 31.05.03 23:40 
was meinst du mit Abstraktionsvermögen ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
TomT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 116

Suse 9.1 WinXP
D6 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 116

Suse 9.1 WinXP
D6 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 01.06.03 18:03 
Zitat:

Aber in bestimmten Situationen sind sie ungemein hilfreich

könntes du(ihr) mal beispiele machen ????

Moderiert von user profile icontommie-lie: Delphi- durch Quote-Tags ersetzt

_________________
MFG
Michael Springwald, "kann kein englisch...."
Nimloth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: 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.
ausblenden 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..0of 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: 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 :wink:

_________________
mfg.
mâximôv
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 13.06.03 19:14 
kennt ihr nochmehr tutor zu pointern ? auser das von tino ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Nimloth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 14.06.03 17:13 
sind, aber alle in englisch, gibt es da keine deutschen tutors ?

_________________
MFG
Michael Springwald, "kann kein englisch...."