<?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[ich kann nicht rechnen :(]]></title><description><![CDATA[<p>kann sich mal einer diese &quot;klausuraufgabe&quot; ansehen und mir sagen wieso für den ersten funktionsaufruf 46 ina gespecihert wird, fuer den 2ten aber die 52 nicht in a gespeichtert wird?</p>
<p>fuer den 3ten funktionsaufruf wuerde ich dann 52+8+8 rechnen wollen weil (nach meiner &quot;denke&quot; a=52 ist.) Richtig ist aber 46+8+6.</p>
<p>warum aendert f1 a zu 46 ABER f2 bei dem auch 52 zurueckgegeben wird bleibt a auf 46 und wird nicht 52. WIESO??????</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int a=20, b=30;

	int f1(int p, int b)
	{
		return a=a+p+b;

	}
	int f2(int a, int b)
	{
		return a=a+b;
	}

int main()
{
	int b=6;
	cout &lt;&lt; &quot;f1 = &quot; &lt;&lt; f1(a,b) &lt;&lt; endl;
	cout &lt;&lt; &quot;f2 = &quot; &lt;&lt; f2(a,b) &lt;&lt; endl;
	cout &lt;&lt; &quot;wieso ist a=46 und nicht 52 ?? ....... a = &quot; &lt;&lt; a &lt;&lt; endl;
	{
		int a=8;
		cout &lt;&lt; f1(a,b) &lt;&lt; endl;
		cout &lt;&lt; f2(a,b) &lt;&lt; endl;
	}
	cout &lt;&lt; f1(a,b) &lt;&lt; endl;
	return 0;
}
</code></pre>
<p>danke ich zweifel echt an mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205749/ich-kann-nicht-rechnen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 12:33:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205749.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Feb 2008 17:27:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 17:27:37 GMT]]></title><description><![CDATA[<p>kann sich mal einer diese &quot;klausuraufgabe&quot; ansehen und mir sagen wieso für den ersten funktionsaufruf 46 ina gespecihert wird, fuer den 2ten aber die 52 nicht in a gespeichtert wird?</p>
<p>fuer den 3ten funktionsaufruf wuerde ich dann 52+8+8 rechnen wollen weil (nach meiner &quot;denke&quot; a=52 ist.) Richtig ist aber 46+8+6.</p>
<p>warum aendert f1 a zu 46 ABER f2 bei dem auch 52 zurueckgegeben wird bleibt a auf 46 und wird nicht 52. WIESO??????</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int a=20, b=30;

	int f1(int p, int b)
	{
		return a=a+p+b;

	}
	int f2(int a, int b)
	{
		return a=a+b;
	}

int main()
{
	int b=6;
	cout &lt;&lt; &quot;f1 = &quot; &lt;&lt; f1(a,b) &lt;&lt; endl;
	cout &lt;&lt; &quot;f2 = &quot; &lt;&lt; f2(a,b) &lt;&lt; endl;
	cout &lt;&lt; &quot;wieso ist a=46 und nicht 52 ?? ....... a = &quot; &lt;&lt; a &lt;&lt; endl;
	{
		int a=8;
		cout &lt;&lt; f1(a,b) &lt;&lt; endl;
		cout &lt;&lt; f2(a,b) &lt;&lt; endl;
	}
	cout &lt;&lt; f1(a,b) &lt;&lt; endl;
	return 0;
}
</code></pre>
<p>danke ich zweifel echt an mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457671</guid><dc:creator><![CDATA[latenite]]></dc:creator><pubDate>Sun, 17 Feb 2008 17:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 17:40:40 GMT]]></title><description><![CDATA[<p>Weil du dem Parameter 52 übergibst und nicht dem a das du meinst. Wie wärs<br />
denn mit call by refrence? Und es ist nicht besonders schön zu lesen mit<br />
globalen und lokalen Variablen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457678</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Sun, 17 Feb 2008 17:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 17:49:35 GMT]]></title><description><![CDATA[<p>sorry das habe ich nicht verstanden..kannst du das mal noch &quot;genauer vllt am code&quot; erklaeren.</p>
<p>aendern will / kann ich da nichts wir sollen so was in der klausir loesen...und die ausgabewere bestimmen.</p>
<p>Also wieso wird a nach f2 nicht 52?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457685</guid><dc:creator><![CDATA[latenite]]></dc:creator><pubDate>Sun, 17 Feb 2008 17:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 18:00:22 GMT]]></title><description><![CDATA[<p>latenite schrieb:</p>
<blockquote>
<p>sorry das habe ich nicht verstanden..kannst du das mal noch &quot;genauer vllt am code&quot; erklaeren.</p>
<p>aendern will / kann ich da nichts wir sollen so was in der klausir loesen...und die ausgabewere bestimmen.</p>
<p>Also wieso wird a nach f2 nicht 52?</p>
</blockquote>
<p>weil eine variable mit dem namen &quot;a&quot; in f2 nochmal definiert wird. Und zwar als 1. Parameter der Funktion. Und da lokale variablen, wie der 1. Parameter von f2 globale variablen &quot;überblenden&quot; (sprich es wird die lokale variable &quot;a&quot; verwendet und nicht die globale).</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int a=20, b=30;  // definition von globalen variablen

    int f1(int p, int b) // der 2. parameter &quot;b&quot; verdeckt die globale variable mit dem selben namen
    {
        return a=a+p+b;

    }
    int f2(int a, int b)  // beider parameter überdecken die globalen variablen
    {
        return a=a+b;
    }

int main()
{
    int b=6;
    cout &lt;&lt; &quot;f1 = &quot; &lt;&lt; f1(a,b) &lt;&lt; endl;  // ergebnis 46
    cout &lt;&lt; &quot;f2 = &quot; &lt;&lt; f2(a,b) &lt;&lt; endl;  // ergebnis 52 aber der inhalt der globalen variable &quot;a&quot; = 46, da sie nicht verändert wird
    cout &lt;&lt; &quot;wieso ist a=46 und nicht 52 ?? ....... a = &quot; &lt;&lt; a &lt;&lt; endl;
    {
        int a=8;
        cout &lt;&lt; f1(a,b) &lt;&lt; endl;
        cout &lt;&lt; f2(a,b) &lt;&lt; endl;
    }
    cout &lt;&lt; f1(a,b) &lt;&lt; endl;
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1457703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457703</guid><dc:creator><![CDATA[firefly]]></dc:creator><pubDate>Sun, 17 Feb 2008 18:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 18:03:49 GMT]]></title><description><![CDATA[<pre><code>int a=20, b=30; //global

    int b=6; 
    cout &lt;&lt; &quot;f1 = &quot; &lt;&lt; f1(a,b) &lt;&lt; endl; 
/*f1 (20, 6)
    int f1(int p, int b) 
    { 
        return a=a+p+b; //a=20+20+6 == 46
//=&gt;return 46 (weil a 46 ist)        
    } 
*/
    cout &lt;&lt; &quot;f2 = &quot; &lt;&lt; f2(a,b) &lt;&lt; endl; 
/*f2 (46, 6)
    int f2(int a, int b) 
    { 
        return a=a+b; a=46+6 == 52
//return 52 (von dem LOKALEN a - nicht dem globalen)
    } 
*/
</code></pre>
<p>byebye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457705</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 17 Feb 2008 18:03:49 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 18:07:16 GMT]]></title><description><![CDATA[<p>Also stimmen tut es sowieso.</p>
<p>Es kommt einfach darauf an, was er damit machen will. <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>int f2(int a, int b) // a ist ein anderes a, als du oben deklariert hast!!!!
    {
        return a=a+b;//Hier wird das interne a genommen; dein übergebenes a ist verändert sich nicht, weil es hier drinn nicht ist!!!!!
    }
</code></pre>
<p>wenn du dein globales a verwenden möchtest, müsstest du das so schreiben:</p>
<pre><code>int f2(int a, int b) 
    {
        return ::a=a+b; // hier wird das globale a sichtbar gemacht und nicht von dem inneren a überschrieben!
    }
</code></pre>
<p>Du hast hier nur ungeschickt die Namen gewählt. Und macht darum nicht, was du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457713</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 17 Feb 2008 18:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 18:23:31 GMT]]></title><description><![CDATA[<p>Also wer so einen Spaghetticode seinen Schülern vorsetzt, hat seinen Beruf verfehlt. Oder eigentlich nicht. Schlimmer wäre es, wenn er seine Programmierkünste in der Praxis verwenden würde und jemand müsste mit seinen Programmen arbeiten oder gar warten :D. Leider sehe ich so etwas aber auch zu oft im richtigen Leben :(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457727</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Sun, 17 Feb 2008 18:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 18:29:03 GMT]]></title><description><![CDATA[<p>? Von welchem Code redest du? Den Ausgangscode. .. also ist durchaus ganz gut um mal klar zu machen, wie die Gültigkeitsbereiche festgelegt sind. Und direkt ist drin, was bei call-by-value passiert (und was eben auch nicht!). Ist durchaus ein gutes Beispiel!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457732</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 17 Feb 2008 18:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 21:33:43 GMT]]></title><description><![CDATA[<p>Der Code ist voll mit Tücken und Unsauberkeiten wie z. B. die Zuweisung im return. Das ist einfach unverantwortlich, so etwas zu zeigen. Mir ist bewusst, daß das die Absicht des Authors war, die Tücken zu zeigen, aber ich bezweifle den pädagogischen Wert. Die Schüler denken noch, es soll so sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457842</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Sun, 17 Feb 2008 21:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to ich kann nicht rechnen :( on Sun, 17 Feb 2008 21:53:05 GMT]]></title><description><![CDATA[<p>Also ich finde es als Übung sehr sinnvol. Wenn der Prof. dann in der nächsten Lektion kommt und frägt: &quot;Und bei wem hats so gemacht, wie ihr wolltet?&quot;</p>
<p>Und dann sieht man, wer sich mit dem Code auseinandergesetzt hat und ihn versucht hat zu verstehen. Ich denke, dass danach niemand von denen einen solchen Fehler machen wird, sondern sich 2 mal überlegt, wie er etwas benennt wie er etwas zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457860</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 17 Feb 2008 21:53:05 GMT</pubDate></item></channel></rss>