Was genau habe ich von Pointern?
-
Hallo,
vermutlich stelle ich mal wieder eine sehr dumme Frage, aber bei der Auseinandersetzung mit Pointren habe ich mich gefragt, was genau ich nun davon habe.
Ich kann doch eine Funktion genausogut direkt per reference nutzen also
void function ( &number) { }was genau habe ich denn davon es als
void function( *numberPointer) { }zu realisieren.
Kurz gesagt mir will der Vorteil eines Pointers gegenüber einer Referenz nicht in den Kopf.
Grüße
Gunnar
-
Zeigerarithmetik.
-
versuch mal ne referenz auf NULL zu setzen
-
tipp schrieb:
versuch mal ne referenz auf NULL zu setzen
schaff ich nicht

-
Übergabe an Funktionen ist nicht der einzige Anwendungsbereich von Zeigern. Aber wie bereits gesagt wurde, können Pointer im Gegensatz zu Referenzen NULL sein, d.h. sie zeigen auf nichts. Pointer müssen auch nicht bei ihrer Definition initialisiert werden. Für die dynamische Speicherverwaltung brauchst du beispielsweise auch Pointer:
int *a; a = new int(4); delete a;In diesem Thread wird übrigens so ziemlich das gleiche besprochen.
-
Zeiger bringen dir
1.) Frust
2.) Ärger
3.) Depressionen
4.) Suizidgedanken
5.) Agressionen
6.) Zeitliche Belastung
7.) Bestimmt keine Freundin
8.) Einen drei Tage Bart
9.) Augenringe
10.) Lust auf Kaffee in neuen Variationen
11.) Keinen größeren Penis
12.) Keine bessere Software
13.) Software mit mehr potentiellen Fehlerquellen
14.) Kein Neid bei Java-Programmierern
15.) Kein Neid bei C#-Programmierern
16.) Neid bei Dummköpfen
17.) Kein schnelleres Auto
18.) Kein schöneres Gesicht
19.) Graue Haare
20.) Nichts
-
Fachmann für Zeiger schrieb:
Zeiger bringen dir
1.) Frust
2.) Ärger
3.) Depressionen
4.) Suizidgedanken
5.) Agressionen
6.) Zeitliche Belastung
7.) Bestimmt keine Freundin
8.) Einen drei Tage Bart
9.) Augenringe
10.) Lust auf Kaffee in neuen Variationen
11.) Keinen größeren Penis
12.) Keine bessere Software
13.) Software mit mehr potentiellen Fehlerquellen
14.) Kein Neid bei Java-Programmierern
15.) Kein Neid bei C#-Programmierern
16.) Neid bei Dummköpfen
17.) Kein schnelleres Auto
18.) Kein schöneres Gesicht
19.) Graue Haare
20.) Nichts
!!! Ab in die FAQ !!!

-
Fachmann für Zeiger schrieb:
Zeiger bringen dir
1.) Frust
2.) Ärger
3.) Depressionen
4.) Suizidgedanken
5.) Agressionen
6.) Zeitliche Belastung
7.) Bestimmt keine Freundin
8.) Einen drei Tage Bart
9.) Augenringe
10.) Lust auf Kaffee in neuen Variationen
11.) Keinen größeren Penis
12.) Keine bessere Software
13.) Software mit mehr potentiellen Fehlerquellen
14.) Kein Neid bei Java-Programmierern
15.) Kein Neid bei C#-Programmierern
16.) Neid bei Dummköpfen
17.) Kein schnelleres Auto
18.) Kein schöneres Gesicht
19.) Graue Haare
20.) Nichts

-
Fachmann für Zeiger schrieb:
Zeiger bringen dir
1.) Frust
...Nur, wenn du keine Ahnung hast, was du da machst.
@topic: Kannst gut den Link, der Nexus gepostet hat anschauen. Ist dort erlärt.
-
TheRealMatix schrieb:
tipp schrieb:
versuch mal ne referenz auf NULL zu setzen
schaff ich nicht

Eben.

Gruß,
Simon2.
-
warum zweifeln eigendlich im moment alle an zeigern???
in den letzen tagen sidn mehrere threads zum thema pointer eröffnet worden, wozu sie gut wären und warum und so?
ja ich gebe zu dass es anfangs etwas komisch ist mit denen, aber andererseits sind die verdammt gut wenn man nur die addresse (also einen int/long) ändern muss statt en ganzes objekt was einige MB gross ist...
geht en kleines bisschen schneller
dazu kommt noch das thema mit den dynamischen arrays(ok wir haben ja vector aber trotzdem)und verkette listen die man sich selber schreibt funktionieren auch kaum ohne zeiger...
wir haben in schule jetzt letzens mal ne übung zu structs gemacht inder sprache ELAN für das OS L3 (naja ziemlich doof alles, und es gibt keine zeiger)
da mussten wir die zeiger nochmal als extra variable in den structs deklarieren
und die meisten kamen da schon nicht mehr mit...
-
tipp schrieb:
versuch mal ne referenz auf NULL zu setzen
int &r = (int&)*(int*)0; printf ("%d\n", r); // <-- may crash due to null reference access :D
-
pointer rocken.... :schland: :schland:
-
Skym0sh0 schrieb:
und verkette listen die man sich selber schreibt funktionieren auch kaum ohne zeiger...
müsste mit referenzen auch gehen. und mit array-indizes gehts auch noch.

-
fricky schrieb:
Skym0sh0 schrieb:
und verkette listen die man sich selber schreibt funktionieren auch kaum ohne zeiger...
müsste mit referenzen auch gehen. und mit array-indizes gehts auch noch.

hmmmm da wird's aber mit den "Enden" kompliziert.... und zwar unnötig kompliziert...(deswegen wohl auch "... kaum ...")
Gruß,
Simon2.
-
Simon2 schrieb:
hmmmm da wird's aber mit den "Enden" kompliziert....
head und tail könnten doch referenzen auf sich selbst sein. ausserdem wissen wir ja nun, wie man eine ref. auf 0 kriegt.

-
Viel schwieriger wird's doch, wenn ein Knoten umgehängt werden muss. Irgendwo muss man da zwangsläufig eine Referenz verbiegen (und wenn es die Referenz auf den neu erzeugten Knoten ist) - und das klappt nicht.
-
Referenzen wurden wahrscheinlich eher nicht so konzipiert, dass man den halben Speicher umkrüppeln muss, um sie wie Zeiger zu benutzen

Was spricht eigentlich gegen Zeiger? Ich verstehe die Abneigung einiger Leute nicht ganz...
-
fricky schrieb:
Simon2 schrieb:
hmmmm da wird's aber mit den "Enden" kompliziert....
head und tail könnten doch referenzen auf sich selbst sein. ausserdem wissen wir ja nun, wie man eine ref. auf 0 kriegt.

Das würde mich jetzt mal interessieren, wie Du so ein Objekt konstruierst.... (ohne Zeiger natürlich)
Gruß,
Simon2.
-
Nexus schrieb:
Was spricht eigentlich gegen Zeiger? Ich verstehe die Abneigung einiger Leute nicht ganz...
Vorallem wenn man bedenkt dass Referenzen eigntlich das komische sind. Denn Zeiger hat ja fast jede Sprache: Java, C#, PHP, Python,... Nur Referenzen gibts fast nirgends... Insofern: Referenzen in C++ sind komisch, da es sie fast nirgendwo anders gibt, Zeiger aber trifft man überall.
Was die Leute so verwirrt ist der *. Also rein die Syntax und das ist mit verlaub gesagt, lächerlich.
-
ich muss zu meienr schande gestehen dass ich acuh imemr noch öfters durcheinander komme wann ejzd er * dahinkommt und wann nicht...
passiert mir öfters mald ass ich en objekt ansprechen will und dann die adresse mit 100 multipliziere xDDD