Pointer
-
Hi,
ich habe eine Funktion, die einen Pointer auf Int übergeben bekommen soll..
später kann ich dann den Wert, den die Funktion in diesen int geschrieben hat lesen..wie muss ich das übergeben?
void x(int *hier){...}
mein Ansatz war:
int i; x(&i);
hab damit auch was bekommen und der Compiler hat nicht gemeckert, aber wenn es richtig ist, warum etc. kann mir das jemand erklären??
thx
-
Eigentlich solltest du dir solche Basics mit einem Buch/Tutorial aneignen, aber hier mal die Kurzfassung:
In der Deklaration gibst du an, dass ein Pointer auf int erwartet wird. Beim Aufruf übergibst du die Adresse der Variable i ("&" ist der Adressoperator). In der Funktion hast du nun also einen int-Pointer, der auf dein i zeigt. Mit "*i" dereferenzierst du die Adresse und zeigst somit auf i. Also kannst du auch an diese Stelle im Speicher schreiben. Daher ist der Wert nach Aufruf der Funktion auch in i drin. Toll, was?