<?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[Rückgabewerte]]></title><description><![CDATA[<p>Hallo!</p>
<p>Vornwet: ich bin Anfänger!<br />
Ich bin gerade dabei mich mit Funktionen und Referenzen auseinanderzusetzen.<br />
Ich möchte eine Funktion schreiben, die mir mehrere Werte zurück gibt. Ich habe gelesen, dass ich das mit Referenzen machen kann. Aber in allen Beispielen, die ich gefunden habe wird der zurückgegebene Wert bereits an die Funktion übergeben.<br />
Beispiel: ich möchte a und b als Rückgabewerte.<br />
funk(int &amp;a, int&amp;b)</p>
<p>ich möchte mir die Werte aber erst in der Funktion berechnen und dann zurückgeben lassen. Also z.B. über gebe ich x und Y an die funktion und bekomme a und b zurück. Geht das?<br />
Ich hoffe das war einigermaßen versändlich <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/120567/rückgabewerte</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 09:21:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120567.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Sep 2005 13:13:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:13:51 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Vornwet: ich bin Anfänger!<br />
Ich bin gerade dabei mich mit Funktionen und Referenzen auseinanderzusetzen.<br />
Ich möchte eine Funktion schreiben, die mir mehrere Werte zurück gibt. Ich habe gelesen, dass ich das mit Referenzen machen kann. Aber in allen Beispielen, die ich gefunden habe wird der zurückgegebene Wert bereits an die Funktion übergeben.<br />
Beispiel: ich möchte a und b als Rückgabewerte.<br />
funk(int &amp;a, int&amp;b)</p>
<p>ich möchte mir die Werte aber erst in der Funktion berechnen und dann zurückgeben lassen. Also z.B. über gebe ich x und Y an die funktion und bekomme a und b zurück. Geht das?<br />
Ich hoffe das war einigermaßen versändlich <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/872006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872006</guid><dc:creator><![CDATA[BINA]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:17:14 GMT]]></title><description><![CDATA[<p>Eine Funktion mir nur einem Rückgabewert kannst du einfach ganz leicht mit return zurückgeben. Sobald du mehrere Werte zurückgeben willst gibts zwei Möglichkeiten. Entweder du gibst ein Object zurück oder du machst es über die Parameter. Also Referenz oder Pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872009</guid><dc:creator><![CDATA[dali]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:20:00 GMT]]></title><description><![CDATA[<p>ich möchts mit Referenzen machen. Aber daher ja meine Frage: Muss ich die Werte, die ich zurückgeben lassen will auch an die Funktion übergeben??? Beispiel siehe oben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872013</guid><dc:creator><![CDATA[BINA]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:28:27 GMT]]></title><description><![CDATA[<p>Antwort: Ja.</p>
<p>Wenn du weist was Referenzen sind sollte das aber auch klar sein wieso...</p>
<p>Ausserdem kann einen C(++) Funktion nur einen Rückgabewert haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872024</guid><dc:creator><![CDATA[Beliah]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:28:27 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:31:18 GMT]]></title><description><![CDATA[<p>Du kannst immer nur ein Wert zurückgeben !!!</p>
<p>Zu deinem Problem:</p>
<pre><code class="language-cpp">int calc(int a,int b)
{
  //irgendwelche berechnungen
  a = 34+75;
  b = a + 23;

 //dann würdest du gerne sicher sowas machen oder??
 return a;
 return b;

}

...

int x=45,y=56;
calc(x,y);

cout&lt;&lt;x&lt;&lt;&quot; &quot;&lt;&lt;y;
</code></pre>
<p>Das geht aber nicht weil du schon bei return a_; zurück bist und nie zu retrun b; kommen wirst.</p>
<p>Und zweitens x und y werden sich nicht ändern, weil du die Werte in a und b kopierst.</p>
<p>Dein Compiler nimmt sich dann nur die WERTE von x und y und a und b haben dann nur diese Werte aber beziehen sich nicht in irgendeiner Weise auf x,y;</p>
<p>Also gibst du die Adressen von x und y an calc() somit wissen a und b wo x und y &quot;wohnen&quot; <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="😃"
    /> also beziehen sie sich direkt auf diese Werte sie zeigen also auf den selber Speicherbereich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> nicht wie bei einer Kopie auf verschiedene Speicherbereiche...</p>
<p>Das sieht dann mit Zeigern so aus...</p>
<pre><code class="language-cpp">int calc(int *a,int *b)  // wenn du bei varibalen definitionen ein * hinmachst 
{                        //können diese Variablen Adressen speichern, somit                               
                         //heißen sie Zeiger(Pointer)

 //dann wissen a und b aber nur wo x und y wohenen du musst jetzt aber ins Haus  //gelangen  

//Das machst du dann mit den Sternchen vor den Variablen ;) 
  *a = 34+75;
  *b = *a + 23;

 //dann würdest du gerne sicher sowas machen oder??
 return *a;
 return *b;

}

...

int x=45,y=56;
calc(&amp;x,&amp;y); // Damit a und b die Adressen von x und y bekommen musst du vor x  //und y ein &amp; schreiben

cout&lt;&lt;x&lt;&lt;&quot; &quot;&lt;&lt;y;
</code></pre>
<p>Jetzt ist da aber noch ein Fehler calc() müsste dann so aussehen</p>
<pre><code class="language-cpp">void calc(int *a,int *b)
{

  *a = 34+75;
  *b = *a + 23;

 // Jetzt brauchst du nichts zurück zu geben weil a und b sich ja auf x,y beziehen.

}
</code></pre>
<p>Nun zu den referenzen:</p>
<p>Eine refernz ist nur ein anderer Name für ein Variable, also eine Art implizierte Zeiger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">void calc(int &amp;a,int &amp;b) // &amp; vor variablenname in definition bedeutet das das eine Refernz ist
{

  a = 34+75;
  b = a + 23; // Bei refernzen brauchst du keine * mehr und sie beziehen sich trotzdem auf x,y

}

//Du musst also auch keine Adressen mehr übergeben;)
calc(x,y);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/872025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872025</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:42:54 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe!<br />
so ganz verstanden hab ich das ja noch nicht mit den Referenzen, aber ich denke das kommt noch. Hab ich das so richtig verstanden:<br />
Beispiel: ich habe eine funktion an die ich eigentlich nur zwei Werte übergebe (x und y). aus diesen zwei werten berechne ich mir dann a und b. also etwa so:</p>
<p>funct(x,y)<br />
a=3+x;<br />
b=6*y;</p>
<p>Wenn ich jetzt aber a und b brauche zum weiterrechnen, kann ich das dann wie folgt lösen?</p>
<p>funct(&amp;a, &amp;b, x, y)<br />
...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872043</guid><dc:creator><![CDATA[BINA]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewerte on Wed, 14 Sep 2005 13:47:28 GMT]]></title><description><![CDATA[<p>Ja, wenn du die Werte von x und y nach der Funktion noch brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872049</guid><dc:creator><![CDATA[Beliah]]></dc:creator><pubDate>Wed, 14 Sep 2005 13:47:28 GMT</pubDate></item></channel></rss>