Verstehe Zeiger (Pointr) nicht



  • Hey,

    Ich bin gerade beim Thema Zeiger (Pointer) angelangt jedoch verwirrt mich folgendes Schaubild:

    http://www.c-howto.de/tutorial-zeiger-speicher.html

    Warum hat "int *zeiger;" am Anfang als Adresse "0x0010" und als Wert "0x00000007"? Das ist doch die Adresse und Wert von "int zahl = 7;". Genau wie bei Zeile 3) und 4). Und was hat der Pfeil in Zeile 4) zu sagen? Wie ihr seht bin ich ganz schön verwirrt. Ich hab auch schon eine Woche C lernen pausiert um heute nochmal frisch an das Problem ran zu gehen aber ich verstehe es immer noch nicht.

    Wär sehr nett von euch wenn ihr mir das Schaubild genau erklären könntet. 🙂

    MfG



  • es wird zuerst der zeiger int *zeiger deklariert.

    danach wird "zeiger" auf NULL gesetzt

    danach wird "zeiger" auf "zahl" gesetzt.

    im quellcode:

    int zahl=7;
    int *zeiger=NULL;
    zeiger=&zahl; // "zeiger" zeigt nun auf "zahl"
    

  • Mod

    http://www.youtube.com/watch?v=i49_SNt4yfk

    edit: Ist C++, aber in C ist es nicht großartig anders.



  • Danke für deine Hilfe aber das weiß ich ja schon. Nur frage ich mich warum bei jeder Zeile (also die die mit 1), 2), 3) und 4) markiert sind) im Schaubild die erste Zeile die den Wert und die Adresse anzeigt den Wert und die Adresse von "int zahl = 7;" hat. Quasi müsste doch ab Zeile 2) die erste Zeile weg fallen weil es nur zu int zahl = 7;" gehört. Und was bedeutet dieser Pfeil ganz unten?

    @SeppJ: Mein Englisch ist zwar gut aber mein englisches Verstehen nicht so. Und wenn ich bei Youtube die englischen Untertitel einschalte kommt nur Blödsinn bei raus. 😉



  • ...


  • Mod

    thewolf16 schrieb:

    Danke für deine Hilfe aber das weiß ich ja schon. Nur frage ich mich warum bei jeder Zeile (also die die mit 1), 2), 3) und 4) markiert sind) im Schaubild die erste Zeile die den Wert und die Adresse anzeigt den Wert und die Adresse von "int zahl = 7;" hat. Quasi müsste doch ab Zeile 2) die erste Zeile weg fallen weil es nur zu int zahl = 7;" gehört. Und was bedeutet dieser Pfeil ganz unten?

    Das Schaubild rechts gehört nicht zu der Codezeile links, sondern das Schaubild rechts zeigt, wie es aussähe (oder genauer: aussehen könnte), wenn der Code links Zeile für Zeile ausgeführt würde. Das heißt, bei Schaubild 2 ist immer noch der Effekt von Codezeile 1 erhalten.

    Der Pfeil soll deutlich machen, dass der Zeiger mit Wert 0x00000010 auf die Zelle mit Adresse 0x0010 zeigt. Was ich ein bisschen doof finde, die Adresse einmal kurz und einmal lang zu schreiben. Da sieht man nicht sofort, dass beide Adressen gleich sind.

    @SeppJ: Mein Englisch ist zwar gut aber mein englisches Verstehen nicht so. Und wenn ich bei Youtube die englischen Untertitel einschalte kommt nur Blödsinn bei raus. 😉

    Das werde ich nicht alles übersetzen. Mittelfristig kommst du beim Programmieren nicht um Englisch herum. Schriftsprache reicht aber aus. Das Video ist eher ein Gimmick.



  • Danke euch, jetzt hab ich es verstanden. 🙂


Anmelden zum Antworten