<?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[Warum funktioniert diese Funktion?]]></title><description><![CDATA[<p>Hallöle,<br />
habe hier eine C/C++ Funktion geschrieben, die super funktioniert und die<br />
ich auch verstehe:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

int addition(int,int);

main()
{
    int z1,z2,summe;
    cout&lt;&lt;&quot;Zahl 1 eingeben: &quot;;
    cin&gt;&gt;z1;
    cout&lt;&lt;&quot;Zahl 2 eingeben: &quot;;
    cin&gt;&gt;z2;

    summe = addition(z1,z2);
    getch();
}

int addition(int zahl1, int zahl2)
{
	int summe;
    cout&lt;&lt;&quot;\nSumme =          &quot;;
    summe=zahl1+zahl2;
    return(summe);
}
</code></pre>
<p>Wenn ich das aber nun wie folgt ändere, dann gehts auch...aber wieso???</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

int addition(int&amp;, int&amp;, int&amp;);

main()
{
    int z1,z2,summe;
    cout &lt;&lt; &quot;Zahl 1 eingeben: &quot;;
    cin &gt;&gt; z1;
    cout &lt;&lt; &quot;Zahl 2 eingeben: &quot;;
    cin &gt;&gt; z2;
    addition(z1,z2,summe);
    cout &lt;&lt; &quot;\nSumme =        : &quot;;
    cout &lt;&lt; summe;
    getch();
}

int addition(int &amp;wert1, int &amp;wert2, int &amp;ergebnis)
{
    ergebnis = wert1+wert2;
}
</code></pre>
<p>Ich verstehe nicht, was es mit dem 'kaufmännischen und' auf sich hat.<br />
Wieso benötige ich in der Funktion addition kein return?<br />
Woher weiss die Funktion main, dass bei cout &lt;&lt; summe;<br />
der Wert 'ergebnis' aus der Funktion addition angezeigt werden soll?</p>
<p>Danke<br />
Dickus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229616/warum-funktioniert-diese-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 19:08:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229616.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Dec 2008 12:58:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 12:58:11 GMT]]></title><description><![CDATA[<p>Hallöle,<br />
habe hier eine C/C++ Funktion geschrieben, die super funktioniert und die<br />
ich auch verstehe:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

int addition(int,int);

main()
{
    int z1,z2,summe;
    cout&lt;&lt;&quot;Zahl 1 eingeben: &quot;;
    cin&gt;&gt;z1;
    cout&lt;&lt;&quot;Zahl 2 eingeben: &quot;;
    cin&gt;&gt;z2;

    summe = addition(z1,z2);
    getch();
}

int addition(int zahl1, int zahl2)
{
	int summe;
    cout&lt;&lt;&quot;\nSumme =          &quot;;
    summe=zahl1+zahl2;
    return(summe);
}
</code></pre>
<p>Wenn ich das aber nun wie folgt ändere, dann gehts auch...aber wieso???</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

int addition(int&amp;, int&amp;, int&amp;);

main()
{
    int z1,z2,summe;
    cout &lt;&lt; &quot;Zahl 1 eingeben: &quot;;
    cin &gt;&gt; z1;
    cout &lt;&lt; &quot;Zahl 2 eingeben: &quot;;
    cin &gt;&gt; z2;
    addition(z1,z2,summe);
    cout &lt;&lt; &quot;\nSumme =        : &quot;;
    cout &lt;&lt; summe;
    getch();
}

int addition(int &amp;wert1, int &amp;wert2, int &amp;ergebnis)
{
    ergebnis = wert1+wert2;
}
</code></pre>
<p>Ich verstehe nicht, was es mit dem 'kaufmännischen und' auf sich hat.<br />
Wieso benötige ich in der Funktion addition kein return?<br />
Woher weiss die Funktion main, dass bei cout &lt;&lt; summe;<br />
der Wert 'ergebnis' aus der Funktion addition angezeigt werden soll?</p>
<p>Danke<br />
Dickus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630299</guid><dc:creator><![CDATA[Dickus]]></dc:creator><pubDate>Sun, 14 Dec 2008 12:58:11 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 13:10:40 GMT]]></title><description><![CDATA[<p>int addition(int&amp;, int&amp;, int&amp;);</p>
<p>Das bedeutet, daß Du drei Referenzen auf Integerwerte übergibst. Referenzen sind stellvertretend für eine Variable/Konstante.<br />
Wenn Du also einer Referenz etwas zuweist, dann weist Du in Wirklichkeit der Variablen etwas zu, für den die Referenz steht.<br />
Stell Dir das so ähnlich vor, als wenn Du Deiner Funktion einen Zeiger übergibst. Die Wirkung ist die gleiche, allerdings sind Referenzen etwas einfacher zu handhaben (keine Dereferenzierung erforderlich).<br />
Die Zuweisung in Deiner Funktion ändert also direkt den Wert von summe in der aufrufenden Funktion.</p>
<p>Allerdings sollte wirklich Dein Compiler meckern, wenn Du Deine Funktion nicht mit return beendest ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630307</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sun, 14 Dec 2008 13:10:40 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 13:25:24 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort.<br />
Das habe ich nun verstanden. Dazu war ich eben noch auf der Suche und<br />
habe etwas zu 'call by reference' und 'call by value' gefunden.</p>
<p>Warum das aber ohne return funktioniert,<br />
ohne dass der Compiler meckert...keine Ahnung.</p>
<p>Mit return geht's natürlich auch. <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>Dickus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630314</guid><dc:creator><![CDATA[Dickus]]></dc:creator><pubDate>Sun, 14 Dec 2008 13:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 14:00:46 GMT]]></title><description><![CDATA[<p>Dickus schrieb:</p>
<blockquote>
<p>Warum das aber ohne return funktioniert,<br />
ohne dass der Compiler meckert...keine Ahnung.</p>
</blockquote>
<p>Ich denke mal, dass das daran liegt, dass du deinen zu alten Compiler benutzt.. Meine Glaskugel sagt mir DevC++, richtig? - Der ist veraltet. Hol dir <a href="http://www.microsoft.com/germany/Express/" rel="nofollow">VC++</a> oder <a href="http://www.codeblocks.org/" rel="nofollow">Code::Blocks</a>.. (oder zumindes was gleichwertig aktuelles)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630325</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Dec 2008 14:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 14:58:59 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ich denke mal, dass das daran liegt, dass du deinen zu alten Compiler benutzt..</p>
</blockquote>
<p>Das ist sehr naheliegend, da ja auch <code>main()</code> ohne Rückgabetyp verwendet wird. In C++ muss man auch <code>int</code> explizit angeben.</p>
<p>Ausserdem sind alle eingebundenen Header nicht Standard-C++:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;  // War nie wirklich C oder C++; schreib &lt;iostream&gt;
#include &lt;stdlib.h&gt;    // C-Bibliothek; richtig wäre &lt;cstdlib&gt;
#include &lt;stdio.h&gt;     // ebenfalls; besser &lt;cstdio&gt;
#include &lt;conio.h&gt;     // Compilerspezifische Erweiterung; nicht Standard-C++
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1630341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630341</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Dec 2008 14:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 15:06:53 GMT]]></title><description><![CDATA[<p>Das gibs sogar ein <a href="http://www.youtube.com/watch?v=oHg5SJYRHA0" rel="nofollow">Videotutorial</a> dazu! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630343</guid><dc:creator><![CDATA[C++Pro]]></dc:creator><pubDate>Sun, 14 Dec 2008 15:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Warum funktioniert diese Funktion? on Sun, 14 Dec 2008 19:48:36 GMT]]></title><description><![CDATA[<p>das is cool <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630478</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 14 Dec 2008 19:48:36 GMT</pubDate></item></channel></rss>