Gast
#446005
Wenn ich eine Funktion habe void test(double *d) und diese per test(&myDoubleValue); aufrufe, kann ich dann in der test-Funktion den Wert nicht per d = 10.23; manipulieren?
|
Anzeige
|
Pointer auf double
Gast
#446005
Wenn ich eine Funktion habe void test(double *d) und diese per test(&myDoubleValue); aufrufe, kann ich dann in der test-Funktion den Wert nicht per d = 10.23; manipulieren?
Gast
#446015
Wenn schon, dann
Gast
#446020
Aber wird dann nicht die Adresse überschrieben? Bin mir nicht mehr sicher...
Gast
#446033
Mit dem Dereferenzierungsoperator "*" greift man auf das Element, auf das der Zeiger zeigt, zu. So wie Du es geschrieben hast (ohne "*") überschreibst Du die Adresse, die in d gespeichert ist. Da Du allerdings d einen Fließkommawert zuweisen willst, dürfte es da eine Fehlermeldung geben. Der Zeiger selbst ist immer ein ganzzahliger Wert (eben eine Adresse).
Gast
#446039
Ja, funktioniert ohne Fehlermeldung. Hoffentlich auch am Controller...
Gast
#446054
Nochmal zusammenfassend, damit es klarer wird: In
wird ein Zeiger auf einen double-Wert deklariert. Der Zeigervariable "d" wird mit
die Adresse einer double-Variable übergeben. "d" (also die reine, nackte Variable) enthält jetzt eben diese Adresse. Will man das Element ansprechen, dessen Adresse jetzt in "d" gespeichert ist, dann verwendet man den Dereferenzierungsoperator "*":
jetzt enthält "myDoubleValue2" den Wert von "myDoubleValue". Antwort schreiben |
Anzeige
|