<?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[Static Variablen]]></title><description><![CDATA[<p>Ich habe in meinem Tutorial jetzt folgendes Script gesehen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include&lt;conio.h&gt;
using namespace std;

int foo(int value=0)
{
    static int val=0;
    if(value!=0) val=value;
    return val;
}

int bar(int a)
{
    {
        static int b=a;
      }
            //return b; //wuerde nicht gehen, da b zwar noch existiert
                        //aber der Sichtbarkeitsbereich bereits verlassen wurde
    return a;
}

int main()
{
    foo(3);
    cout&lt;&lt;foo()&lt;&lt;'\n';

    getch();
}
</code></pre>
<p>Jetzt ist meine Frage:<br />
Woher kommt das &quot;b&quot; ?? Gehen sie davon aus, dass die Funktion bereits einmal aufgerufen wurde ?? Und noch eine letzte Frage = Wofür ist das return ??<br />
Wäre super, wenn ihr die Fragen mal durchgehen könntet.</p>
<p>Vielen Dank im Voraus und<br />
Liebe Grüße Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265487/static-variablen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 00:34:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265487.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Apr 2010 07:23:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Static Variablen on Sat, 24 Apr 2010 07:23:22 GMT]]></title><description><![CDATA[<p>Ich habe in meinem Tutorial jetzt folgendes Script gesehen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include&lt;conio.h&gt;
using namespace std;

int foo(int value=0)
{
    static int val=0;
    if(value!=0) val=value;
    return val;
}

int bar(int a)
{
    {
        static int b=a;
      }
            //return b; //wuerde nicht gehen, da b zwar noch existiert
                        //aber der Sichtbarkeitsbereich bereits verlassen wurde
    return a;
}

int main()
{
    foo(3);
    cout&lt;&lt;foo()&lt;&lt;'\n';

    getch();
}
</code></pre>
<p>Jetzt ist meine Frage:<br />
Woher kommt das &quot;b&quot; ?? Gehen sie davon aus, dass die Funktion bereits einmal aufgerufen wurde ?? Und noch eine letzte Frage = Wofür ist das return ??<br />
Wäre super, wenn ihr die Fragen mal durchgehen könntet.</p>
<p>Vielen Dank im Voraus und<br />
Liebe Grüße Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887537</guid><dc:creator><![CDATA[Florian S.]]></dc:creator><pubDate>Sat, 24 Apr 2010 07:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to Static Variablen on Sat, 24 Apr 2010 07:39:28 GMT]]></title><description><![CDATA[<p>Hallo Florian,</p>
<p>deine b Variable hat du in deiner Funktion eigentlich deklariert, aber zum mitschreiben.</p>
<pre><code class="language-cpp">static int b=a;
</code></pre>
<p>Bin zwar kein Experte aber hier hast du einen Integer deklariert (Ganzzahlen) mit der variable b.<br />
Return ist hier nichts anderes als ein Stop deiner Funktion zusätzlich wirfst du hier deine variable a zurück.<br />
Heißt die Funktion gibt den Wert von a zurück.</p>
<p>Hoffe ich konnte helfen <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/1887538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887538</guid><dc:creator><![CDATA[Jason_Gregory]]></dc:creator><pubDate>Sat, 24 Apr 2010 07:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Static Variablen on Sat, 24 Apr 2010 07:49:41 GMT]]></title><description><![CDATA[<p>Vielen Dank schon mal,<br />
kurz vorher : Ich habe es nicht geschrieben, es stand in meinem Tutorial !</p>
<p>Aber du sagtest:<br />
&quot;deine b Variable hat du in deiner Funktion eigentlich deklariert, aber zum mitschreiben.&quot;</p>
<p>Okay, dass mit return hat mir geholfen, aber was meinst du mit:<br />
&quot;Zum Mitschreiben&quot; ???</p>
<p>Vielen Dank und LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887539</guid><dc:creator><![CDATA[Florian S.]]></dc:creator><pubDate>Sat, 24 Apr 2010 07:49:41 GMT</pubDate></item><item><title><![CDATA[Reply to Static Variablen on Sat, 24 Apr 2010 08:14:25 GMT]]></title><description><![CDATA[<p>Hallo Florian,</p>
<p>also was ich damit meinte ist das du mit deiner</p>
<pre><code class="language-cpp">static Int
</code></pre>
<p>Zeile, eine Nummer auf English Integer (deshalb Int) definiert hast.<br />
Hab dir hier ein gutes Tutorial rausgesucht, das es ziemlich gut auf<br />
den Punkt bringt (deutsche Seite).<br />
<a href="http://tutorial.schornboeck.net/static.htm" rel="nofollow">http://tutorial.schornboeck.net/static.htm</a></p>
<p>Hoffe ich hab dir weitergeholfen <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>// Oh ich seh gerade das ist ja die Seite die du grade offen hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Also eine Statische Variable (wie der Text auf der Webseite sagt)<br />
wird nicht aufhören zu existieren sobald die Funktion durchgeführt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887545</guid><dc:creator><![CDATA[Jason_Gregory]]></dc:creator><pubDate>Sat, 24 Apr 2010 08:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Static Variablen on Sat, 24 Apr 2010 09:17:50 GMT]]></title><description><![CDATA[<p>Zum Verständnis: eine als static deklarierte Variable in einer Funktion behält ihren Wert für einen nächsten Aufruf der Funktion. Das kann man für viele Zwecke gut gebrauchen. Alle nicht static deklarierten Variablen sind bei jedem Aufruf der Funktion neu.</p>
<p>Das gezeigte Beispiel des Tutorials ist etwas verwirrend. Die Deklaration static int b = a ist geklammert, also nur innerhalb dieser Klammern sichtbar. Der Autor des Tutorials hat gleich mehrere Dinge zusammen gewürfelt, die zum Lernen nicht zusammen gehören. Es ist auch fraglich, ob jeder Compiler das gleich macht. Verlassen würde ich mich darauf jedenfalls nicht.</p>
<p>Probiere an dem Beispiel mit kleineren Änderungen (static und/oder Klammern weglassen, Zuweisung b = a von der Deklaration trennen) herum und du lernst, was man damit alles machen kann. :p</p>
<p>An den Autor des Tutorials: Ein Lernender sollte auch zum 'sauberen und übersichtlichem Programmieren' angehalten werden! <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/1887567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887567</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:17:50 GMT</pubDate></item></channel></rss>