Bei normalen Variablen ist es doch auch egal ob du das:
|
C-/C++-Quelltext
|
1
2
|
int a = 2;
funktion(a);
|
machst oder
|
C-/C++-Quelltext
|
1
|
funktion(2);
|
Selbiges ist bei deinem Fall.
Wenn du
|
C-/C++-Quelltext
|
1
|
int* a = &b;
|
schreibst, wird im Zeiger a die Adresse von b gespeichert. Du kannst a dann so verwenden, als wenn du die Adresse von b direkt verwenden würdest. Ob du nun also "&b" als Parameter direkt übergibst oder den Umweg über "a" machst ist da eigentlich egal. Wenn du "a" hinterher noch weiter verwenden möchtest, und dafür gibt es Anwendungsfälle die dir noch begegnen werden (zum Beispiel bei Arrays), dann musst du es natürlich so schreiben. Ansonsten kannst du es dir aussuchen.
edit: Über & kannst du dir von einer Variable die Adresse holen. Ein Zeiger ist an sich eine Variable, welche die Adresse einer weiteren Variable speichert. Theoretisch könntest du dir die Adresse eines Zeigers holen. Das nennt sich normal Zeiger auf einen Zeiger.
|
C-/C++-Quelltext
|
1
2
3
|
int i = 5; // Ein Integer mit dem Wert 5
int *a = &i; // Ein Zeiger auf den Integer I. Der Wert des Zeigers ist also die Adresse von i
int **b = &a; // Ein Zeiger auf die Adresse vom Integer I. Der Wert ist also die Adresse von a.
|
Das kannst du ewig so weiter führen. Jede Variable hat eine Adresse und deshalb kannst du dir diese Adresse auch geben lassen.