Unterschied zwischen "." und "->" Operator



  • Hi,
    ich habe vor ca. 2h ein paar Quellcodes gelesen und da fiel mit der "->" operator auf. Hab nun die ganze Zeit danach gesucht aber nichts gefunden.
    Wofür genau ist der "->" operator?
    Ich dachte immer man könnte statdessen eines "->" auch ein "." setzten (wie z.B. bei einem struct), aber als ich den Quellcode abtippte und kompilieren wollte gings net, mit "->" anstelle von "." gings aber.
    Wo liegt denn nun der unterschied?
    Und wann verwendet man was?
    Danke



  • x->y macht das gleiche wie (*x).y
    einfach gesagt ist -> also der . für den fall, dass x ein zeiger ist 😉



  • also bedeutet x->y nichts anderes als Zeiger x,variable/funktion y ?

    Edit:
    Wenn das oben soweit richtig ist, sollte auch das gehen:

    #include <iostream>
    #include <time.h>
    ...
    time_t tempTime;
    tm *CurrentTime;
    tempTime = time(NULL);
    CurrentTime = localtime(&tempTime);
    std :: cout << *(CurrentTime).tm_mday << std :: endl; //geht aber nicht, DevC++ will immer "CurrentTime->tm_mday
    ...
    


  • so ist es



  • ^
    |

    siehe Edit oben... {sry für doppelpost}



  • std :: cout << (*CurrentTime).tm_mday << std :: endl; //geht aber nicht, DevC++ will immer "CurrentTime->tm_mday
    

    so gehts 😉

    und genau das ist der grund, warum es -> gibt...

    operatorpräzedenz ist oft was gemeines :p



  • argh 😉
    Da kann ich netmal richtig abschreibe 👎
    Danke schön


Log in to reply