<?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[Programm gibt andere Ergebnisse aus, als erwartet]]></title><description><![CDATA[<p>Hallo c-plusplus Community,<br />
ich bin neu hier und werde euch in nächster Zeit mit meinen Fragen nerven. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich bin gerade beim C++ lernen und steck jetzt hier fest:</p>
<pre><code>int doIt(int a, int&amp; b, int *c) {

	a *= 3;
	b += 4;
	*c += a + b;
	return a + b + *c;
}

int main() {

	int a, b, c;
	a = b = c = 2;
	c = doIt(a, b, &amp;a);

	cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot; b: &quot; &lt;&lt; b &lt;&lt; &quot; c: &quot; &lt;&lt; c &lt;&lt; endl;
}
</code></pre>
<p>Das Programm liefert die Ergebnisse: a: 14 b: 6 c: 26<br />
Meine Frage ist jetzt, wie man auf die Ergebnisse kommt, da ich eigentlich andere Ergebnisse erwartet habe, und zwar a: 2 b: 2 c: 24.<br />
Kann mir das jemand Schritt für Schritt erklären?</p>
<p>Danke schon mal im voraus,</p>
<p>Error319</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320250/programm-gibt-andere-ergebnisse-aus-als-erwartet</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 08:28:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320250.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Sep 2013 16:23:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 16:23:11 GMT]]></title><description><![CDATA[<p>Hallo c-plusplus Community,<br />
ich bin neu hier und werde euch in nächster Zeit mit meinen Fragen nerven. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich bin gerade beim C++ lernen und steck jetzt hier fest:</p>
<pre><code>int doIt(int a, int&amp; b, int *c) {

	a *= 3;
	b += 4;
	*c += a + b;
	return a + b + *c;
}

int main() {

	int a, b, c;
	a = b = c = 2;
	c = doIt(a, b, &amp;a);

	cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot; b: &quot; &lt;&lt; b &lt;&lt; &quot; c: &quot; &lt;&lt; c &lt;&lt; endl;
}
</code></pre>
<p>Das Programm liefert die Ergebnisse: a: 14 b: 6 c: 26<br />
Meine Frage ist jetzt, wie man auf die Ergebnisse kommt, da ich eigentlich andere Ergebnisse erwartet habe, und zwar a: 2 b: 2 c: 24.<br />
Kann mir das jemand Schritt für Schritt erklären?</p>
<p>Danke schon mal im voraus,</p>
<p>Error319</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354393</guid><dc:creator><![CDATA[Error319]]></dc:creator><pubDate>Sat, 21 Sep 2013 16:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 16:30:31 GMT]]></title><description><![CDATA[<p>Hier ist, was die Funktion genau macht:</p>
<pre><code>int doIt(int a, int&amp; b, int *c) {

    a *= 3; // doIt::a = 6 (2*3)
    b += 4; // main::b = 6 (2+4)
    *c += a + b; // main::a = 2 + 6 + 6 (2 ist der alte Wert, a und b wurden draufaddiert)
    return a + b + *c; // Rückgabe = 12 + 6 + 6 = 24. Das ist auch der neue Wert von c.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2354396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354396</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 21 Sep 2013 16:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 16:43:58 GMT]]></title><description><![CDATA[<p>So, mir ist jetzt klar wie man auf c = 26 kommt.<br />
Aber ich versteh nicht wieso sich auch a und b ändern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code>int doIt(int a, int&amp; b, int *c) {

    a *= 3; // = 6
    b += 4; // = 6
    *c += a + b; // = 14
    return a + b + *c; // = 6 + 6 + 14 = 26 -&gt; c
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2354402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354402</guid><dc:creator><![CDATA[Error319]]></dc:creator><pubDate>Sat, 21 Sep 2013 16:43:58 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 16:57:10 GMT]]></title><description><![CDATA[<p>b wird als Refernez übergeben. (beachte das &amp; bei b in der Paramterliste von doIt)</p>
<p>Damit hat die Funktion Zugriff auf die entsprechende Variable der aufrufenden Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354406</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sat, 21 Sep 2013 16:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:12:33 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber ich versteh nicht wieso sich auch a und b ändern</p>
</blockquote>
<p>Weil die Funktion eine Referenz bzw. einen Zeiger auf a und b haben. Über diese können sie die Variablen ändern.</p>
<p>Kennst du diese Sprachmittel eigentlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354412</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:17:14 GMT]]></title><description><![CDATA[<p>Und schau mal genau hin. Beim Aufruf von <code>doIt</code> ist c nicht dabei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354415</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:17:54 GMT]]></title><description><![CDATA[<p>Ja aber die Funktion wird doch nur bei c angewendet, d.h. doch, dass a und b sich nicht verändern, also a = 2 und b = 2, oder nicht?</p>
<p>Anders kann ich es mir nur so erklären, dass die Werte von a und b in der Funktion verändert werden, aber dann müsste a = 6 und b = 6 rauskommen.<br />
b würde dann stimmen, aber bei a kommt ja 14 raus, woher kommt die 14? Die 14 kommt nur bei</p>
<pre><code>*c += a + b
</code></pre>
<p>vor, aber das hat ja nichts mit a zu tun.</p>
<p>Oder ist mein Gedankengang einfach nur Käse? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354416</guid><dc:creator><![CDATA[Error319]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:20:38 GMT]]></title><description><![CDATA[<p>DirkB schrieb:</p>
<blockquote>
<p>Und schau mal genau hin. Beim Aufruf von <code>doIt</code> ist c nicht dabei.</p>
</blockquote>
<p>Ahhhh, jetzt hab ichs verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Danke <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/2354419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354419</guid><dc:creator><![CDATA[Error319]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:22:16 GMT]]></title><description><![CDATA[<p>Error319 schrieb:</p>
<blockquote>
<p>Oder ist mein Gedankengang einfach nur Käse? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>ja, verwirrt durch die doppelte Verwendung von Bezeichnern.</p>
<pre><code class="language-cpp">int doIt(int x, int&amp; y, int *z) {

    x *= 3;
    y += 4;
    *z += x + y;
    return x + y + *z;
}

int main() {

    int a, b, c;
    a = b = c = 2;
    c = doIt(a, b, &amp;a);

    cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot; b: &quot; &lt;&lt; b &lt;&lt; &quot; c: &quot; &lt;&lt; c &lt;&lt; endl;
}
</code></pre>
<p>und nochmal darüber nachdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354421</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:27:02 GMT]]></title><description><![CDATA[<p>Oder gleich explizit:</p>
<pre><code>int doIt(int a_copied, int&amp; b_ref, int *a_ptr) { 

    a_copied *= 3; 
    b_ref += 4; 
    *a_ptr += a_copied + b_ref; 
    return a_copied + b_ref + *a_ptr; 
} 

int main() { 

    int a, b, c; 
    a = b = c = 2; 
    c = doIt(a, b, &amp;a); 

    cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot; b: &quot; &lt;&lt; b &lt;&lt; &quot; c: &quot; &lt;&lt; c &lt;&lt; endl; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2354426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354426</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Programm gibt andere Ergebnisse aus, als erwartet on Sat, 21 Sep 2013 17:35:21 GMT]]></title><description><![CDATA[<p>Ist echt einfacher, dankeschön <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/2354435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354435</guid><dc:creator><![CDATA[Error319]]></dc:creator><pubDate>Sat, 21 Sep 2013 17:35:21 GMT</pubDate></item></channel></rss>