<?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[Verständnisproblem bei Referenzen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">int&amp; test(int&amp; var1){
	static int var2 = ++var1;
	return var2;
}

int main(){

int varMain = 5;
cout &lt;&lt; test(varMain) &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; test(varMain) &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; varMain &lt;&lt; endl &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Ausgabe:</p>
<p>6<br />
6<br />
6</p>
<p>Ich hätte aber 6 - 7 - 7 erwartet. Denn ich übergebe varMain ja per Referenz. Damit wird varMain beim ersten Aufruf von test() inkrementiert und beträgt damit 6. Beim zweiten Aufruf von test() wird sie nochmal inkrementiert und müsste nun 7 betragen. Dem ist aber nicht so. Wo also ist mein Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/261403/verständnisproblem-bei-referenzen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 11:24:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261403.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Feb 2010 06:15:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 06:15:14 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">int&amp; test(int&amp; var1){
	static int var2 = ++var1;
	return var2;
}

int main(){

int varMain = 5;
cout &lt;&lt; test(varMain) &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; test(varMain) &lt;&lt; endl &lt;&lt; endl;
cout &lt;&lt; varMain &lt;&lt; endl &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Ausgabe:</p>
<p>6<br />
6<br />
6</p>
<p>Ich hätte aber 6 - 7 - 7 erwartet. Denn ich übergebe varMain ja per Referenz. Damit wird varMain beim ersten Aufruf von test() inkrementiert und beträgt damit 6. Beim zweiten Aufruf von test() wird sie nochmal inkrementiert und müsste nun 7 betragen. Dem ist aber nicht so. Wo also ist mein Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857397</guid><dc:creator><![CDATA[achWasWeißIchDenn?]]></dc:creator><pubDate>Thu, 18 Feb 2010 06:15:14 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 06:49:57 GMT]]></title><description><![CDATA[<p>Die statische lokale Variable var2 wird beim ersten Aufruf (einmalig) initialisiert, folglich wird der Ausdruck in der Initialisierung auch nur einmal ausgewertet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857402</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 18 Feb 2010 06:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 08:08:12 GMT]]></title><description><![CDATA[<p>Doh!</p>
<p>Kann man ja beheben, indem man Deklaration und Initialisierung trennt:</p>
<pre><code class="language-cpp">int&amp; test(int&amp; var1){
    static int var2; 
    var2 = ++var1;
    return var2;
}
</code></pre>
<p>Wäre das aber semantisch richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857433</guid><dc:creator><![CDATA[achWasWeißIchDenn?]]></dc:creator><pubDate>Thu, 18 Feb 2010 08:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 08:23:27 GMT]]></title><description><![CDATA[<p>achWasWeißIchDenn? schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int&amp; test(int&amp; var1){
    static int var2; 
    var2 = ++var1;
    return var2;
}
</code></pre>
<p>Wäre das aber semantisch richtig?</p>
</blockquote>
<p>Was ist denn der Sinn von var2? Ich sehe keinen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857442</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 18 Feb 2010 08:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 08:30:17 GMT]]></title><description><![CDATA[<p>Ich denke der Funktionsname verrät den Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857445</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 18 Feb 2010 08:30:17 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem bei Referenzen on Thu, 18 Feb 2010 08:43:47 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Ich denke der Funktionsname verrät den Sinn.</p>
</blockquote>
<p>nicht in dem Maße, dass man bewerten könnte, ob &quot;die Semantik richtig ist&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857449</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 18 Feb 2010 08:43:47 GMT</pubDate></item></channel></rss>