Referenzen und Pointer Verständnisfrage



  • Ich beschäftige mich schon länger mit den Grundlagen von c++
    habe aber trotzdem eine Verständnissfrage.
    Referenzen werden benutzt im inerhalb von Funktionen auf Variablen zugreifen zu können und diese zu verändern.
    Ist das so richtig ?

    Zeiger dienen dem direkten Speicherzugriff
    Ihnen wird die aktuelle Speicherposition einer Variablen zugewiesen im diese Speicherzelle zu bearbeiten.
    Mit erschließt sich leider nicht ganz wofür , soll ich wieder wie in den 80er mit Peek und Poke im speicher herumwühlen ?
    Da gibt es doch sicher elegantere Variationen ?
    Jetzt habe ich schon verschiedene Artikel zu diesem Thema gelesen , bin aber über den sinnvollen gebrauch der Pointer noch unschlüssig.

    Danke fürs lesen ..



  • Fragensteller555 schrieb:

    Referenzen werden benutzt im inerhalb von Funktionen auf Variablen zugreifen zu können und diese zu verändern.
    Ist das so richtig ?

    Kann man, aber häufiger ist der Grund Performance. Übergib mal einer Funktion einen Container "by value" anstatt "by (const) reference".

    Fragensteller555 schrieb:

    Ihnen wird die aktuelle Speicherposition einer Variablen zugewiesen im diese Speicherzelle zu bearbeiten.

    Ja, Zeiger erhalten die Speicheradresse von Variablen.

    Fragensteller555 schrieb:

    Mit erschließt sich leider nicht ganz wofür , soll ich wieder wie in den 80er mit Peek und Poke im speicher herumwühlen ?

    Rohe Zeiger sind in C++ nicht sehr häufig außer im Low-Level-Bersich. Es gibt ja Iteratoren, Smarte pointer und dergleichen was wesentlich besser ist.

    gruß
    syntax



  • Klar gibt es elegantere Versionen mit dem Speicher umzugehen, aber in C++ ist es halt mit Pointern gelöst.

    Letztendlich musst du ja in jeder (objektorientierten) Programmiersprache die Adressen von Objekten festhalten können - in C++ ist das halt nicht hinter anderen Mechanismen versteckt sondern direkt mit Pointern.

    Du musst ja allen Speicher der auf dem Heap liegt mit Pointern ansprechen, was anderes bleibt dir gar nicht übrig.

    Hat z.B. den Vorteil dass man deutlich hardwarenäher programmieren kann.



  • Danke ihr habt mir helfen können 🙂 🙂 🙂



  • Zeiger sind nicht boese. Das versuchen dir nur die Java-Leute einzutrichtern.


Anmelden zum Antworten