Was bedeutet **



  • #include <stdio.h>

    int main(int argc, char **argv)

    Diese doppelten sehe ich ständig in irgendwelchen Foren, aber ich habe es noch nie in einer Literatur gesehen.

    thx



  • char a;
    a ist ein char
    char* b;
    b ist ein zeiger auf char
    char** c;
    c ist ein zeiger auf einen zeiger auf char
    char*** d;
    d ist ein zeiger auf einen zeiger auf einen zeiger auf char

    ** ist nix magisches 😉



  • vielleicht noch ein zusatz zum beitrag von Shade:
    du kannst solche "**" immer nach der rechts-links-regel auflösen

    d.h. du fängst beim namen der variablen an und nimmst zuerst das erste "zeichen", das rechts steht, dann das erste linke usw.

    zB

    char *a[];

    a ist ein array (jetzt steht rechts nix mehr) von pointern auf chars

    MfG



  • Wie passt diese Regel auf

    char (*a)[10];
    

    ?



  • Für solche Fälle braucht man dann doch den C Declaration Decoder 😉

    du kannst solche "**" immer nach der rechts-links-regel auflösen

    Immer ist hier eindeutig fehl am Platz. Für einfache Deklarationen ist das aber imo eine ganz brauchbare Vorgehensweise.

    const int* p;           // Ptr-to-const
    int const*p;   
    int * const p;          // const-Ptr
    int const * const p;    // const-Ptr to const
    int const * const * p;  // Ptr to const-Ptr to const
    ...
    

    In solchen Fällen hilft das rechts-nach-links lesen.



  • creiner
    *******

    Die heisst nicht "rechts nach links Regel", sondern "Precedence Rule", genauer, die Auflösung solcher Konstrukte richtet sich nach der Operatoren Priorität. Schätze mal deshalb hat Bashar auch gefragt.

    EDIT:

    allgemein
    *********

    int const * const * p;

    Bei solch einem Konstrukt hilft wirklich von rechts nach links lesen, wobei man als Faustregel noch wissen sollte, steht ein const gleich neben einer Typangabe bezieht sich das "const" auf diesen Typ, ansonsten bezieht sich das "const" auf das Pointersternchen links von ihm.

    bye

    tt


Anmelden zum Antworten