Was ist der Unterschied zwischen Referenz- und Zeigersemantik (in C++)?

2 Antworten

Der Zeiger als Referenztyp hält eine Speicheradresse, man kann diese Adresse durch Arithmetik verändern und auch sonst beliebig setzen, seine Gültigkeit ist "unabhängig" davon, was er gerade referenziert.

Die Referenz ist ein Alias für ein konkretes Objekt und ist an dieses gebunden.

https://www.tutorialspoint.com/cplusplus/cpp_references.htm

Die dreckigen Details kann man sich in der Dokumentation udn den Standards durchlesen.

Referenzen haben keine eigene Speicheradresse. Pointer können null sein, Referenzen nicht.

KathaHohenfels 
Fragesteller
 01.02.2023, 12:45

wenn Referenzen keine eigenen Speicheradressen haben, wo genau oder wie genau werden sie dann gespeichert?

0
covid69  01.02.2023, 15:25
@KathaHohenfels

Das ist in den meisten Fällen nur eine Compiler abstraktion. Nach dem compilieren ist es zbdas selbe speicherregister auf das du zugreifst. In manchen Fällen kann es auch sein dass der Compiler daraus einen Pointer macht. Egal wie, Referenzen sind eine C++ compilersache die es in assembly oder allgemein Maschinensprache nicht gibt.

1