brechbunkt schrieb:
> Bisher habe ich Zeiger immer durch '*' oder '[]' deklariert. Das nun
> durch ein '&' zu deklarieren ist mir irgendwie neu. (Ich hoffe ich
> bekomme nun nicht diese Bemerkungen, ich solle mir ein Buch kaufen.
Warum? Das wäre doch am sinnvollsten, zumindest wenn du halbwegs
ernsthaft die Sprache lernen willst.
Compi schrieb:
> cpp gast schrieb:
>> eine Referenz ist quasi ein Pointer, wird aber wie ein Objekt
>> selbst verwendet [halt ohne dereferenzierung].
>
> Ne, ne,so ist das nicht.
Es ist die übliche Art, wie Referenzen intern implementiert sind. Auf
Sprachebene sind sie aber was anderes.
> Ein pointer ist selbst eine Variable, die Speicher benötigt, und auf eine
> andere Adresse verweist.
Eine Referenz benötigt laut ISO C++ zwar offiziell selbst keinen
Speicher, aber ihre Nutzung kann dazu führen, daß Speicher benötigt
wird.
In
1 | struct X { int& i; };
|
2 |
|
3 | int i = 3;
|
4 | X x = {i};
|
wird durchaus Speicher für die Referenz benötigt.
> Der Adressoperator & gibt die Zieladresse direkt an und kostet keinen
> Speicher. Das löst der Compiler auf.
Der Adress-Operator hat damit nichts zu tun.