Was genau habe ich von Pointern?



  • 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



  • Simon2 schrieb:

    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)

    mit 'nem array, so daß die links array-indizes sind, hab ich's schon mal gebastelt. dass es auch mit referenzen geht, war nur eine annahme von mir.
    🙂



  • NixDa schrieb:

    Was die Leute so verwirrt ist der *. Also rein die Syntax und das ist mit verlaub gesagt, lächerlich.

    Die Syntax ist in der Tat ziemlich unglücklich gewählt. Die mehrfachen Überladungen (&: Adresse, Referenz, bitweises Und - *: Zeigerdefinition, -dereferenzierung, Multiplikation) können einen vor allem am Anfang ganz schön verwirren.

    Aber auch daran kann man sich gewöhnen, wenn man einmal weiss, wie die Operatoren anzuwenden sind, hat man in der Regel keine Probleme mehr.



  • NixDa schrieb:

    Denn Zeiger hat ja fast jede Sprache: Java, C#, PHP, Python,...

    Jo, das sind alles Sprachen mit Zeigern...



  • zeiger sind doch nun wirklich nützlich. vor allem wilde zeiger. mit denen kann man wunderbar elefanten jagen. 🙂



  • Tachyon schrieb:

    NixDa schrieb:

    Denn Zeiger hat ja fast jede Sprache: Java, C#, PHP, Python,...

    Jo, das sind alles Sprachen mit Zeigern...

    Ja sind sie, auch wenn sie es immer "Referenzen" nennen. Aber das ist Marketing-Blabla weil Zeiger ja böse sind...



  • fricky schrieb:

    ...dass es auch mit referenzen geht, war nur eine annahme von mir..

    ..die aber nunmal am entscheidenden Punkt falsch ist. Das Besondere an Referenzen ist eben, dass sie nicht "umhängbar" sind und das ist bei "Indizes" (genauergesagt: Bei den Variablen, die die Indexinformationen halten) und auch bei Pointern anders.

    Gruß,

    Simon2.



  • NixDa schrieb:

    Ja sind sie, auch wenn sie es immer "Referenzen" nennen. Aber das ist Marketing-Blabla weil Zeiger ja böse sind...

    Ich würde es anders sagen: Zeiger können problematisch sein (gerade wenn sie wie in C++ "ungeprüft" sind), sind aber auch in gewissen Grad nötig. Sprich: "Vermeide Zeiger wo möglich, verwende sie wo nötig".

    cu André



  • NixDa schrieb:

    Tachyon schrieb:

    NixDa schrieb:

    Denn Zeiger hat ja fast jede Sprache: Java, C#, PHP, Python,...

    Jo, das sind alles Sprachen mit Zeigern...

    Ja sind sie, auch wenn sie es immer "Referenzen" nennen. Aber das ist Marketing-Blabla weil Zeiger ja böse sind...

    Ne, das sind Referenzen. 😉



  • Tachyon schrieb:

    NixDa schrieb:

    Tachyon schrieb:

    NixDa schrieb:

    Denn Zeiger hat ja fast jede Sprache: Java, C#, PHP, Python,...

    Jo, das sind alles Sprachen mit Zeigern...

    Ja sind sie, auch wenn sie es immer "Referenzen" nennen. Aber das ist Marketing-Blabla weil Zeiger ja böse sind...

    Ne, das sind Referenzen. 😉

    .... und was sind dann "Zeiger" ?

    ... und was sind dann "C++-Referenzen" ?

    Gruß,

    Simon2.



  • Tachyon schrieb:

    Ne, das sind Referenzen. 😉

    Im C++ sinne sind es lustigerweise aber zeiger 😉

    man kann es nennen wie man will - insofern ist marketing blabla schon treffend (und die leute fallen massig drauf rein): zeiger in c++ und referenzen in java,... sind das exakt selbe konzept. ob man es nun zeiger oder referenz oder rebindable object nennen mag - es ist das selbe konzept.

    der einzige unterschied ist, dass man in c++ zeiger incrementieren und decrementieren kann - das ist idr aber nie ein problem. das problem mit zeigern ist, dass sie wild sein koennen und da hilft einen auch kein gc dagegen. aber marketingmaessig sieht das natuerlich komplett anders aus...

    c++ referenzen gibt es in der tat nirgendwo anders, zumindest nicht im mainstream bereich.


Anmelden zum Antworten