Was ist der Unterschied zwischen Referenz- und Zeigersemantik (in C++)?
Und zu welchem Zweck wird welche dieser Semantiken verwendet?
lg Kath
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.
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.
wenn Referenzen keine eigenen Speicheradressen haben, wo genau oder wie genau werden sie dann gespeichert?