<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Speicherverwaltung bei Deklaration einer Referenz]]></title><description><![CDATA[<p>Guten Tag liebe Mitglieder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ,</p>
<p>ich habe eine Frage bzgl. Referenz. Sie ist ja ein Alias-Name einer Variable. Ich frage mich was im Speicher passiert wenn man eine Referenz auf eine Variable deklariert.</p>
<p>Nehmen wir als Beispiel:</p>
<p>int i=13;</p>
<p>------<br />
| 13 | i<br />
------<br />
Adresse 10001</p>
<p>int &amp;ref = i;</p>
<p>Wird denn hier dementsprechend so aussehen?</p>
<p>----<br />
| i | ref<br />
----<br />
Adresse 10002</p>
<p>Also, der Wert von ref ist nun i ??<br />
Wenn ich jetzt:</p>
<p>ref = 17;</p>
<p>dann wirds ja:</p>
<p>------<br />
| 17 | i<br />
------<br />
Adresse 10001</p>
<p>----<br />
| i | ref<br />
----<br />
Adresse 10002</p>
<p>Ich kann mir eigentlich nicht vorstellen, dass der Compiler bei der Zuweisung ref=17 so &quot;schlau&quot; ist und sagt, &quot;oh.. die 17 muss ich in i abspeichern, nicht in ref&quot;</p>
<p>Warum ist das eigentlich nicht so:</p>
<p>------<br />
| 17 | ref // ref = 17;<br />
------<br />
Adresse 10002</p>
<p>Wo liegt hier mein Denkfehler? Kann das sein, dass die Darstellung der Speicheraktivität von mir hier falsch?</p>
<p>Ich bedanke mich für Eure Hilfe.</p>
<p>Viele Grüße aus dem Rheinland,</p>
<p>Dagmar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229554/speicherverwaltung-bei-deklaration-einer-referenz</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 20:15:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229554.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Dec 2008 15:10:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherverwaltung bei Deklaration einer Referenz on Sat, 13 Dec 2008 15:16:17 GMT]]></title><description><![CDATA[<p>Guten Tag liebe Mitglieder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ,</p>
<p>ich habe eine Frage bzgl. Referenz. Sie ist ja ein Alias-Name einer Variable. Ich frage mich was im Speicher passiert wenn man eine Referenz auf eine Variable deklariert.</p>
<p>Nehmen wir als Beispiel:</p>
<p>int i=13;</p>
<p>------<br />
| 13 | i<br />
------<br />
Adresse 10001</p>
<p>int &amp;ref = i;</p>
<p>Wird denn hier dementsprechend so aussehen?</p>
<p>----<br />
| i | ref<br />
----<br />
Adresse 10002</p>
<p>Also, der Wert von ref ist nun i ??<br />
Wenn ich jetzt:</p>
<p>ref = 17;</p>
<p>dann wirds ja:</p>
<p>------<br />
| 17 | i<br />
------<br />
Adresse 10001</p>
<p>----<br />
| i | ref<br />
----<br />
Adresse 10002</p>
<p>Ich kann mir eigentlich nicht vorstellen, dass der Compiler bei der Zuweisung ref=17 so &quot;schlau&quot; ist und sagt, &quot;oh.. die 17 muss ich in i abspeichern, nicht in ref&quot;</p>
<p>Warum ist das eigentlich nicht so:</p>
<p>------<br />
| 17 | ref // ref = 17;<br />
------<br />
Adresse 10002</p>
<p>Wo liegt hier mein Denkfehler? Kann das sein, dass die Darstellung der Speicheraktivität von mir hier falsch?</p>
<p>Ich bedanke mich für Eure Hilfe.</p>
<p>Viele Grüße aus dem Rheinland,</p>
<p>Dagmar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629950</guid><dc:creator><![CDATA[dagmar_k]]></dc:creator><pubDate>Sat, 13 Dec 2008 15:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverwaltung bei Deklaration einer Referenz on Sat, 13 Dec 2008 15:41:40 GMT]]></title><description><![CDATA[<p>Der Compiler weiß, dass du mit einer Referenz arbeitest und weiß auch, wo im Speicher das Objekt steckt, das die Referenz referenziert (Man sollte es nicht laut sagen, aber im Prinzip könnte man das mit einem Zeiger implementieren und auf Compilerseite ein paar Einschränkungen auf den Zeiger reinfrickeln (Addresse von Zeiger = Addresse vom Objekt, Addresse muss immer gültig sein etc.).<br />
Ich kann aus deinem Beitrag allerdings noch nicht so genau erkennen, ob du weißt, dass die Variablennamen im fertigen Maschinencode überhaupt nicht mehr auftauchen. Variablennamen sind etwas, das der Compiler dazu verwendet, zu wissen, welche Speicherbereiche du auf welche Art und Weise benutzen möchtest. In dem fertigen Erzeugnis (der ausführbaren Datei) sind diese nicht mehr enthalten (Mit der Ausnahme von dynamischen Bibliotheken evtl.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629960</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 13 Dec 2008 15:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherverwaltung bei Deklaration einer Referenz on Sat, 13 Dec 2008 15:36:41 GMT]]></title><description><![CDATA[<p>Referenzen werden oft intern wie Zeiger gehandhabt. Für den Programmierer sind sie jedoch sicherer (Referenz muss von Anfang an auf gültiges Objekt verweisen) und einfacher (keine explizite Dereferenzierung).</p>
<p>Teilweise - beispielsweise in folgendem Fall - kann die Referenz durch den Compiler wegoptimiert werden, indem die Variable direkt eingesetzt wird.</p>
<pre><code class="language-cpp">int a = 24;
int&amp; ref_a = a;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1629962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629962</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 13 Dec 2008 15:36:41 GMT</pubDate></item></channel></rss>