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.


Anmelden zum Antworten