Pointer auf char Array

Dieses Thema Pointer auf char Array im Forum "C/C++" wurde erstellt von Joggal, 22. Mai 2015.

Thema: Pointer auf char Array Hallo Leute, Ich versuche gerade zum 10. mal, Pointer zu verstehen... Wie es mit int etc. abläuft weiß ich...

  1. Hallo Leute,

    Ich versuche gerade zum 10. mal, Pointer zu verstehen...

    Wie es mit int etc. abläuft weiß ich ja. Zum Beispiel:

    Code (Text):
    int x = 5, *ptr1, **ptr2;

        char text[] = "Hallo";

        pt1 = text;
        pt2 = &pt2;

        ptr1 = &x;
        ptr2 = &ptr1;

        printf("Wert von x: %d\n", x);
        fflush(stdout);
        printf("Adresse von x: %p\n\n", &x);
        fflush(stdout);

        printf("Wert von ptr1 (= Adresse von x): %p\n", ptr1);
        fflush(stdout);
        printf("Adresse von ptr1 selbst: %p\n", &ptr1);
        fflush(stdout);
        printf("Wert von Adresse auf die ptr1 zeigt: %d\n\n", *ptr1);
        fflush(stdout);
     
    Was ich allerdings nicht verstehe ist:

    Code (Text):
    char text[] = "Hallo";
        char *pt1, **pt2;

        pt1 = text;
        pt2 = &pt2;

        printf("Wert von text: %s\n", text);
        fflush(stdout);
        printf("Adresse von text: %p\n\n", &text);
        fflush(stdout);

        printf("Wert von pt1 (= Adresse von text): %p\n", pt1);
        fflush(stdout);
        printf("Adresse von pt1 selbst: %p\n", &pt1);
        fflush(stdout);
        printf("Wert von Adresse auf die pt1 zeigt: %s\n", (*pt1)); <<<<<<<< FEHLER
        fflush(stdout);
     
    Wieso wird der Wert nicht mittels Dereferenzierungsoperator gemacht? So wie bei int?
    Kann mir hier jemand helfen, ich glaub ich habe da ein kleines Verständisproblem^^

    EDIT: Und wie kann ich mittels Pointer dann einzelne Zeichen aus dem String ermitteln? z.B. nur das a aus Hallo ausgeben..

    lg
     
    Zuletzt bearbeitet: 22. Mai 2015
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Arrays sind implizit Pointer. Dementsprechend kannst du einem Pointer ein Array zuweisen.
    Einzelne Zeichen kannst du genauso wie beim Array an sich ermittelln.

    Code (Text):
    char * arrPointer = myArray;
    char c = arrPointer[1];
     
    Zuletzt bearbeitet: 31. Mai 2015