das Zeichen ->



  • hallo ich bin noch newbie in "C" , beim versuchen eines C-codes zu verstehen
    bin ich auf die flogende Anweisung zugestossen:
    while ( table->cmd )........
    was ist denn gemeint mit -> ?
    danke



  • Hallo

    (*objekt).tuetwas()
    

    wird zu

    objekt->tuetwas()
    

    chrische



  • chrische5 schrieb:

    (*objekt).tuetwas()
    

    wird zu

    objekt->tuetwas()
    

    Mmh, ich wage mich jetzt mal weit aus dem Fenster (ich tapse gerade mal ein paar Tage mit C herum) und denke mir: Es könnte aber auch ein Zeiger auf ein Strukturelement sein, oder etwa nicht?

    z.B. wie in meinem niegelnagelneuen C-Code:

    if (st->g)
        free(st->g);
    st->g = (BYTE *)calloc(NCLR, sizeof(BYTE));
    

    Da stellt sich mir ja gleich die nächste Frage:
    Was hat es eigentlich mit '->' und '.' auf sich?
    Ich sehe mal sowas wei "strukt->member = value" aber auch so etwas wie "strukt.member = value" - sehr verwirrend das!



  • meditiere darueber nochmal:

    struct Foo {
      int bar;
    };
    
    struct Foo* foo;
    

    foo->bar

    ist gleichbedeutend mit

    (*foo).bar

    denk darueber nochmal nach.
    dein letzter post hat etwas voreilig gewirkt.

    fuer foo->bar muss foo eindeutig ein zeiger sein, weil (*foo) geht nur wenn foo ein zeiger ist.

    somit waere auch der unterschied foo->bar und foo.bar geklaert.


Anmelden zum Antworten