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_mdayso 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