Warum Zeiger in C ???



  • ssss schrieb:

    jaja, die Zeigers

    und was sollen wir mit diesem Kommentar machen? Was kann Mr.Black damit anfangen?



  • Danke erstmal...

    Mit dem Zugriff auf dem Speicher das ist klar ( also ein Zeitvorteil beim verändern der Daten ? )
    Kann man das vielleicht auch etwas praktisch am TCP Protocol erklären

    THX



  • Mr.Black schrieb:

    Kann man das vielleicht auch etwas praktisch am TCP Protocol erklären

    Nein, weil das nichts miteinander zu tun hat. Höchstens vielleicht der Urgent Pointer im TCP-Header. 😉



  • Servus!

    Ich werd meinen Senf auch noch dazu geben.

    Vektorn werden über ihre Anfangsadresse angesprochen und auch
    mittels dieser Anfangsadresse an Funktionen übergeben. Die An-
    fangsadresse eines Vektors steht fest, ist also eine Konstante. Im
    Gegensatz dazu ist ein Zeiger eine Variable, die die Adresse eines
    (beliebigen) anderen Objektes enthält. Man kann auf dieses Objekt
    indirekt über einen Zeiger zugreifen.

    MFG 🙂



  • @Mr Black

    eigentlich isses ganz einfach ....

    Zeiger brauchst du genau fuer 2 Sachen
    1. fuer dynamische Allocation von Speicher.
    Wenn du zur kompile Zeit ned weisst, wie gross dein Benotigter Speicher wird. Beispielsweisse du laesst den user selber angeben, wieviel Variablen er definieren moechte etc ... und speicherst ned alles gleich in ne Datei sondern haelst es komplett im Speicher, ohne auf Verdacht unsummen an Speicher zu allokieren .... -> dynamisch (malloc und Co)

    2. Ubergabe per "referenz"
    Du hasst Objecte err, Structs (wir sind ja in C 😃 ) und willst diese Dinge einer funktion uebergeben, aber das kopieren der Structur vermeiden. Ungluecklicherweisse kann C eigentlich nur kopieren .... Aber du kannst vorher nen pointer drauf referenzieren und den pointer kopieren lassen ...
    Genau so brauchst das, wenn du funktionen schreibst, die deine Parameter veraendern sollen, beispielsweise weil sie den rueckgabewert fuer Fehlercodes brauchen ... (normal arbeitet deine funktionn mit kopien, also schreibst du immer auf was temporaeres .... )

    mehr faellt mir eigentlich ned ein ....

    Ciao ...



  • RHBaum schrieb:

    mehr faellt mir eigentlich ned ein ....

    vielleicht noch die arithmetik.



  • wie wärs denn mal mit einem umfassenden Text zu Pointern für die FAQ ;), fällt mir grad so ein ;P



  • TheTester schrieb:

    wie wärs denn mal mit einem umfassenden Text zu Pointern für die FAQ ;), fällt mir grad so ein ;P

    Gibts sowas nocht nicht ? Ich dachte, dass die FAQ schon die meisten Themen beinhaltet, die die Programmierung betreffen.



  • Hi!

    Gibt es nur in der C++-FAQ. Hier der link falls es jemanden interessiert obwohl es hier um C geht:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39497

    Zeiger braucht man, wie bereits gesagt, für dynamische Datenstrukturen, Speicherallokation und Referenzparameter. Felder und Zeiger sind in C sehr nah miteinander verwandt, außerdem kann man mit einem Zeiger über ein Feld (ohne Indexvariable) iterieren. Für mehrdimensionale Felder braucht man sie ebenfalls, da diese nicht kopiert werden können.
    Es gibt noch sehr viel mehr Anwendungen für die Zeiger praktisch sind. Z.B. kann man die Adresse des Standardeingabestrom/-ausgabestrom in einer Variablen speichern, was praktisch ist, wenn z.B. im ganzen Programm entweder von der Standardeingabe liest oder doch aus einer Datei die Daten liest, dann hat man einen Zeiger dem zu Programmbeginn entweder die Adresse von stdin oder von der Datei zugewiesen wird.

    Code-Hacker



  • RHBaum schrieb:

    Du hasst Objecte err

    Warum denn das? Die haben dir doch nix getan 😃 😉

    Ansonsten: Der tiefere Sinn von Zeigern wird sich dir mit der Zeit automatisch erschließen.

    Hier noch ein gutes Tut:
    http://www.exonet.de/exonet.php3?doc=ctutorial/pointers.html



  • bin neu hier... aber ihr habt da was seeeeehr maechtiges vergessen

    D I E
    ueberladung oder............................... zum beispiel



  • Lis schrieb:

    bin neu hier... aber ihr habt da was seeeeehr maechtiges vergessen

    D I E
    ueberladung oder............................... zum beispiel

    Tut mir leid, aber ich verstehe nicht, was du damit sagen willst.



  • Lis hat sich im forum versehen...

    ich denke, hier wurde polymorphie angedeutet, wobei ich das nicht unbedingt zum thema "wozu zeiger" hinzufügen würde.. vor allem natürlich nicht in ansi c 😉



  • In jedem Falle haben Zeiger nichts mit Ueberladung zu tun 🙂


Anmelden zum Antworten