<?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[Hilfe bei Programm]]></title><description><![CDATA[<p>Hi,<br />
ich sitze gerade an einer Klausuraufgabe, aber bekomme verstehe da eine Codezeile nicht genau! Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void test1 (int &amp; vi) {vi = vi*vi;}
void test2 (int vi) {vi = vi*vi;}
int main() {
int vi = 2;
test1(vi);
cout &lt;&lt; &quot;vi nach test1:&quot; &lt;&lt; vi &lt;&lt; endl;
test2(vi);
cout &lt;&lt; &quot;vi nach test2:&quot; &lt;&lt; vi &lt;&lt; endl;
return 0;
}
</code></pre>
<p>Und zwar was bedeutet denn das &amp; in Unterprogramm test1 ?<br />
Das beim Aufruf von test2 für vi 4 rauskommt, das verstehe ich ja.<br />
Wäre cool, wenn mir jemand helfen könnte!</p>
<p>Gruß Torti</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216194/hilfe-bei-programm</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 19:18:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216194.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jun 2008 13:24:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 13:24:06 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich sitze gerade an einer Klausuraufgabe, aber bekomme verstehe da eine Codezeile nicht genau! Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void test1 (int &amp; vi) {vi = vi*vi;}
void test2 (int vi) {vi = vi*vi;}
int main() {
int vi = 2;
test1(vi);
cout &lt;&lt; &quot;vi nach test1:&quot; &lt;&lt; vi &lt;&lt; endl;
test2(vi);
cout &lt;&lt; &quot;vi nach test2:&quot; &lt;&lt; vi &lt;&lt; endl;
return 0;
}
</code></pre>
<p>Und zwar was bedeutet denn das &amp; in Unterprogramm test1 ?<br />
Das beim Aufruf von test2 für vi 4 rauskommt, das verstehe ich ja.<br />
Wäre cool, wenn mir jemand helfen könnte!</p>
<p>Gruß Torti</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532844</guid><dc:creator><![CDATA[Torti85]]></dc:creator><pubDate>Fri, 20 Jun 2008 13:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 13:30:12 GMT]]></title><description><![CDATA[<p>Torti85 schrieb:</p>
<blockquote>
<p>ich sitze gerade an einer Klausuraufgabe, aber bekomme verstehe da eine Codezeile nicht genau! Hier der Code:</p>
</blockquote>
<p>So wie der Formatiert ist würde ich auch erstmal stutzen...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void test1(int &amp; vi)
{
    vi = vi*vi;
}

void test2(int vi)
{
    vi = vi*vi;
}

int main()
{
    int vi = 2;
    test1(vi);
    cout &lt;&lt; &quot;vi nach test1:&quot; &lt;&lt; vi &lt;&lt; endl;
    test2(vi);
    cout &lt;&lt; &quot;vi nach test2:&quot; &lt;&lt; vi &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Torti85 schrieb:</p>
<blockquote>
<p>Und zwar was bedeutet denn das &amp; in Unterprogramm test1 ?</p>
</blockquote>
<p>Das ist eine Referenz.</p>
<p>test1 arbeitet mit &quot;Call-by-Reference&quot;, test2 mit &quot;Call-by-Value&quot;.</p>
<p>Was bedeutet das?<br />
Also erstmal Call-by-Value: Bei Call-by-Value wird der Parameter kopiert, ist also eine eigene Variable, die nichts mit dem Aufrufer gemein hat.<br />
Bei Call-by-Reference: Bei Call-by-Reference ist der Parameter eine Referenz, was bedeutet das er nur ein Aliasname für den aufgerufenen Wert darstellt. Alle Änderungen an einer Referenz ändern auch den zugrundeliegenden Wert.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532846</guid><dc:creator><![CDATA[asc@ausgeloggt]]></dc:creator><pubDate>Fri, 20 Jun 2008 13:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 13:35:36 GMT]]></title><description><![CDATA[<p>Ausgabe in dem Fall:</p>
<pre><code>vi nach test1:4
vi nach test2:4
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1532848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532848</guid><dc:creator><![CDATA[Dave_R]]></dc:creator><pubDate>Fri, 20 Jun 2008 13:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 13:40:15 GMT]]></title><description><![CDATA[<p>Danke schön erster einmal!<br />
Aber was heisste den: &quot;ändern den zugrundeliegenden Wert&quot; ?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17880">@Dave_R</a>:<br />
Danke! Aber hab es auch schon compilen gelassen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1532850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532850</guid><dc:creator><![CDATA[Torti85]]></dc:creator><pubDate>Fri, 20 Jun 2008 13:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 13:53:15 GMT]]></title><description><![CDATA[<p>Torti85 schrieb:</p>
<blockquote>
<p>Danke schön erster einmal!<br />
Aber was heisste den: &quot;ändern den zugrundeliegenden Wert&quot; ?</p>
</blockquote>
<p>Denk mal nach:</p>
<pre><code class="language-cpp">test1(vi); // &lt;-- hier wird vi geändert (da Call-By-Reference)
    test2(vi); // &lt;-- hier wird vi nicht geändert (da Call-By-Value)
</code></pre>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532855</guid><dc:creator><![CDATA[asc@ausgeloggt]]></dc:creator><pubDate>Fri, 20 Jun 2008 13:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 14:07:28 GMT]]></title><description><![CDATA[<p>Das Ganze wird übersichtlicher wenn man die Variable die bei Call-by-Value übergeben wird im Unterprogramm anders benennt. Bei Call-by-Value wird nämlich (wie asc schon sagte) eine neue Variable angelegt, mit der das Unterprogramm arbeitet. Diese (temporäre) Variable bekommt als Inhalt den Inhalt der übergebenen Variable und wird wieder gelöscht, wenn das Unterprogramm verlassen wird!!!<br />
Bei Call-by-Reference dagegen verändert das Unterprogramm direkt den Inhalt der übergebenen Variablen.<br />
Daher ist der Quellcode vielleicht so besser verständlich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void test1(int &amp; vi)
{
    vi = vi*vi;
}

void test2(int viTemp)
// hier wird bei Aufruf eine neue Variable viTemp (war vorher vi) 
// angelegt und der Inhalt der übergebenen Variablen eingetragen,
// es wird also nur die temporäre Variable verändert und nicht vi
// aus dem Hauptprogramm
{
    viTemp = viTemp*viTemp;
}

int main()
{
    int vi = 2;
    test1(vi);
    cout &lt;&lt; &quot;vi nach test1:&quot; &lt;&lt; vi &lt;&lt; endl;
    test2(vi);
    cout &lt;&lt; &quot;vi nach test2:&quot; &lt;&lt; vi &lt;&lt; endl;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1532870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532870</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Fri, 20 Jun 2008 14:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Programm on Fri, 20 Jun 2008 14:27:18 GMT]]></title><description><![CDATA[<p>Ahh eben hab ich es verstanden!<br />
Danke nochmal für die Hilfe!</p>
<p>Gruß Torti</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532882</guid><dc:creator><![CDATA[Torti85]]></dc:creator><pubDate>Fri, 20 Jun 2008 14:27:18 GMT</pubDate></item></channel></rss>