 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Christoph L. Guest
|
Posted: Sun May 20, 2007 7:09 pm Post subject: Zeiger und Referenzen in Funktionen |
|
|
Hallo,
hab mal ne frage zu Zeiger und Referenzen in Funktionen. Ich weis nie
was und wie ich das in der Deklaration, Definition und letztendlich beim
"benutzen im Programm" (<- Da gibt es doch bestimmt auch einen
Fachausdruck für) übergeben soll.
Beispiel:
Deklaration :
bool foo(int&, float*)
Wie sieht jetzt die Definition und das "benutzen" aus? Wann muss ich &
und * weglassen, das hängt doch bestimmt auch mit dem Inhalt der
Funktion zusammen was ich mit den Übergebennen Parametern vor habe?!?!
Fragen über Fragen, ich hoffe ihr könnt mir helfen
Auch wenn es ein Link ist in dem das erklärt steht...
P.s.: Das man mit * Dereferenziert, sprich den Wert des Zeigers bekommt
und mit & die Speicheradresse anspricht weis ich schon, nur in
Funktionen habe ich so meine Probleme.
Danke schon mal für die Hilfe! |
|
| Back to top |
|
 |
Björn Hendriks Guest
|
Posted: Mon May 21, 2007 3:06 am Post subject: Re: Zeiger und Referenzen in Funktionen |
|
|
Christoph L. wrote:
| Quote: | hab mal ne frage zu Zeiger und Referenzen in Funktionen. Ich weis nie
was und wie ich das in der Deklaration, Definition und letztendlich beim
"benutzen im Programm" (<- Da gibt es doch bestimmt auch einen
Fachausdruck für) übergeben soll.
Beispiel:
Deklaration :
bool foo(int&, float*)
Wie sieht jetzt die Definition und das "benutzen" aus? Wann muss ich &
und * weglassen, das hängt doch bestimmt auch mit dem Inhalt der
Funktion zusammen was ich mit den Übergebennen Parametern vor habe?!?!
|
Viele Symbole in C++ haben mehrere Bedeutungen, die man nicht verwechseln
sollte. In einem Ausdruck sind * und & der Indirektions- und der
Zeigeroperator, wie du richtig geschrieben hast.
In einer Deklaration haben sie jedoch eine andere Bedeutung. Vereinfacht
gesagt macht in einer Deklaration * aus einem beliebigen Typ T den Typ
Zeiger auf T und & den Typ Referenz auf T. Das hat erstmal nichts mit den
Operatoren * und & zu tun.
Die Vorstellung, dass bei einer Deklaration
float *px;
der Ausdruck *px vom Typ float ist, ist eine Eselsbrücke, die leider bei der
Deklaration einer Referenz mit & nicht funktioniert.
Gruß
Björn |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|