www.mikrocontroller.net

Forum: Compiler & IDEs Pointer auf double


Autor: bst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn schon, dann
*d = 10.23;

Autor: bst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber wird dann nicht die Adresse überschrieben? Bin mir nicht mehr 
sicher...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: bst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, funktioniert ohne Fehlermeldung. Hoffentlich auch am Controller...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal zusammenfassend, damit es klarer wird:
In
double *d;
wird ein Zeiger auf einen double-Wert deklariert. Der Zeigervariable "d" 
wird mit
d = &myDoubleValue;
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 "*":
double myDoubleValue2;
myDoubleValue2 = *d;
jetzt enthält "myDoubleValue2" den Wert von "myDoubleValue".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.