Hi und Willkommen im Forum
Pointer sind mitunter nicht so leicht, aber auch keine schwarze Magie.
Grundsätzlich bei der Arbeit mit Pointer triffst du auf folgende 3 Symbole:
Der Stern hat zwei Bedeutungen, ersten kennzeichnet er einen Pointer bei der Initialisierung:
zweitens
Dereferenziert er einen Pointer:
Code: Alles auswählen
*myPointer = 10; //Den Inhalt auf den myPointer zeigt auf 10 setzten
Mit dem Dereferenzieren greifst du also auf die Variable zu, auf die der Pointer Zeigt.
Das & hat auch zwei Bedeutungen, sofern du mit C++ arbeitest.
Zum einen ist es der
Referenzierungsoperator, macht also genau das umgekehrt des Dereferenzierungsoperators.
Mit dem & vor einer Variable greifst du auf dessen Adresse zu und nicht den Inhalt:
Code: Alles auswählen
int myInt;
int * myPointer;
myPointer = &myInt; //myPointer zeigt auf myInt
Zum anderen kennzeichnet das & eine Referenz beim Initialisieren. Eine Referenz ist auch ein Pointer, der aber bestimmte Bedingungen voraussetzt und ist teil von C++, kommt also etwas später im Tutorial.
Der "->" ist auch eine Dereferenzierung, aber im Kontext von Strukturen und klassen.
Wenn du einen Pointer auf eine Struktur hast, musst du nicht diesen Pointer dereferenzieren und dann auf ein Element aus dieser Struktur zugreifen, sondern mit dem "->" direkt:
Code: Alles auswählen
struct myStruct
{
int myInt;
};
struct myStruct _myStruct;
struct myStrcut * myStructPointer = &_myStruct;
(*myStructPointer).myInt = 5;
myStructPointer->myInt = 5;
Ich hoffe ich konnte dir deine Fragen beantworten.
Redundanz macht wiederholen unnötig.
quod erat expectandum