<?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[Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen]]></title><description><![CDATA[<p>Hallo <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>Überschreibe das original in der main() definierte i in der for-loop. Habe einige Kenntnisse in Java, da wäre so etwas nicht gegangen, zu meiner Überraschung kann ich das i in der for-loop überschreiben. Ist eine Aufgabe aus dem C++-Primer (man soll rausfinden, ob das lauffähig ist). Nun frage ich mich allerdings, wie ich an das äußere i komme, wenn ich es denn doch brauche? Der ::-Operator scheint nur für globale Variablen zu funktionieren, jedenfalls spuckt mir der Compiler einen Fehler aus, wenn ich das tue.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
int i = 100, sum = 0;

for (int i = 0; i != 10; ++i)
{
sum += i;
cout &lt;&lt; i &lt;&lt; endl;
}

cout &lt;&lt; i &lt;&lt; &quot; &quot; &lt;&lt; sum &lt;&lt; endl;

cin.get();

return 0;
}
</code></pre>
<p>Edit:<br />
Habe gerade gelesen, dass es in C++ Referenzen gibt, mit der wäre es z.B. möglich, indem ich für das äußere i eine Referenz anlege, zum Beispiel:</p>
<pre><code>int &amp;x = i;
</code></pre>
<p>Gibt es allerdings keine andere Methode?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339514/wie-kann-ich-hier-auf-die-außerhalb-der-for-loop-definierte-variable-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 00:55:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339514.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Sep 2016 01:38:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 02:09:41 GMT]]></title><description><![CDATA[<p>Hallo <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>Überschreibe das original in der main() definierte i in der for-loop. Habe einige Kenntnisse in Java, da wäre so etwas nicht gegangen, zu meiner Überraschung kann ich das i in der for-loop überschreiben. Ist eine Aufgabe aus dem C++-Primer (man soll rausfinden, ob das lauffähig ist). Nun frage ich mich allerdings, wie ich an das äußere i komme, wenn ich es denn doch brauche? Der ::-Operator scheint nur für globale Variablen zu funktionieren, jedenfalls spuckt mir der Compiler einen Fehler aus, wenn ich das tue.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
int i = 100, sum = 0;

for (int i = 0; i != 10; ++i)
{
sum += i;
cout &lt;&lt; i &lt;&lt; endl;
}

cout &lt;&lt; i &lt;&lt; &quot; &quot; &lt;&lt; sum &lt;&lt; endl;

cin.get();

return 0;
}
</code></pre>
<p>Edit:<br />
Habe gerade gelesen, dass es in C++ Referenzen gibt, mit der wäre es z.B. möglich, indem ich für das äußere i eine Referenz anlege, zum Beispiel:</p>
<pre><code>int &amp;x = i;
</code></pre>
<p>Gibt es allerdings keine andere Methode?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507702</guid><dc:creator><![CDATA[non]]></dc:creator><pubDate>Tue, 06 Sep 2016 02:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 02:17:55 GMT]]></title><description><![CDATA[<p>Doch, gib dem inneren <code>i</code> einfach einen anderen Namen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507707</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Tue, 06 Sep 2016 02:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 02:31:56 GMT]]></title><description><![CDATA[<p>Fytch schrieb:</p>
<blockquote>
<p>Doch, gib dem inneren <code>i</code> einfach einen anderen Namen.</p>
</blockquote>
<p>Schon klar, dass das geht...</p>
<p>Aber wenn ich gerade das NICHT tun möchte, gibt es dann keine Möglichkeit, an das äußere i zu kommen, ohne eine Referenz oder einen Pointer dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507710</guid><dc:creator><![CDATA[non]]></dc:creator><pubDate>Tue, 06 Sep 2016 02:31:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 02:55:27 GMT]]></title><description><![CDATA[<p>Nein, gibt es nicht. Wäre das äußere <code>i</code> im gemeinsamen Klassen-Scope, dann ginge <code>this-&gt;i</code> oder wäre <code>i</code> im gemeinsamen <code>namespace</code> -Scope, dann ginge <code>:: ( Name der namespaces:: ) i</code> , z.B. <code>::foo::bar::i</code> . Bei deinem Beispiel, wo beide Variablen <code>i</code> im selben Funktions-Scope sind, gibt es in der Tat keine Möglichkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507711</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Tue, 06 Sep 2016 02:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 03:35:47 GMT]]></title><description><![CDATA[<p>Gut, danke für die Antwort <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="🙂"
    /> Wollte es nur genau wissen. Finde es nur etwas komisch, dass das doppelte Benutzen dieser Variable nicht verboten wird. Ist wohl Geschmackssache, aber ich fände es so deutlich logischer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507712</guid><dc:creator><![CDATA[non]]></dc:creator><pubDate>Tue, 06 Sep 2016 03:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 04:49:00 GMT]]></title><description><![CDATA[<p>non schrieb:</p>
<blockquote>
<p>Finde es nur etwas komisch, dass das doppelte Benutzen dieser Variable nicht verboten wird.</p>
</blockquote>
<p>Es ist ja nicht die Variable, die doppelt verwendet wird, sondern nur der Name. Die Schleife für sich hat ja keine Probleme; warum sollte es von Bedeutung sein, dass ein äußerer Scope zufällig den gleichen Namen für etwas anderes verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507713</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 06 Sep 2016 04:49:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 07:41:04 GMT]]></title><description><![CDATA[<p>Also ich denke, man sollte nicht mehrere gleichlautende Variablen in einer Funktion nutzen, das trägt nur zur Verwirrung bei.</p>
<p>Wenn du das doch hast, verwende entweder einen anderen Namen - oder ggf. ist es sogar ein Zeichen, dass du das, was du mit der &quot;inneren&quot; Variablen machst, in eine Funktion auslagern solltest.</p>
<p>Du kannst dem Compiler aber sagen, dass er dich warnen soll, wenn du gleiche Namen benutzt, die sich verstecken: kompiliere mit -Wshadow (natürlich auch mit -Wall und -Wextra)! Und wenn du dann noch -Werror setzt, kompiliert dein Code auch nicht mehr <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>Dann kommt heraus (bei clang++-3.9 -Wall -Wextra -Wshadow test.cpp):</p>
<pre><code>test.cpp:9:10: warning: declaration shadows a local variable [-Wshadow]
for (int i = 0; i != 10; ++i) 
         ^
test.cpp:7:5: note: previous declaration is here
int i = 100, sum = 0; 
    ^
1 warning generated.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2507724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507724</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Tue, 06 Sep 2016 07:41:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 12:51:55 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Also ich denke, man sollte nicht mehrere gleichlautende Variablen in einer Funktion nutzen, das trägt nur zur Verwirrung bei.</p>
</blockquote>
<p>Jain.<br />
Mehrfach mit Überschneidungen beim Gültigkeitsbereich finde ich auch ziemlich übel.<br />
Mehrfach ohne Überschneidungen ... mache ich oft. z.B. mehrere Loops hintereinander mit jeweils &quot;i&quot; als Laufvariable. Wieso nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507750</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 06 Sep 2016 12:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich hier auf die außerhalb der for-loop definierte Variable zugreifen on Tue, 06 Sep 2016 14:11:45 GMT]]></title><description><![CDATA[<p>hustbaer, stimme dir voll zu - so hatte ich das auch gemeint (nach Neulesen meines Beitrags war dieser nicht klar genug formuliert)!<br />
Der Schalter <code>-Wshadow</code> meckert es ja auch nicht an, wenn du mehrere for-Schleifen mit i als Zähler hintereinander hast. Das ist natürlich ok. Aber nicht ok sind verschachtelte for-Schleifen mit demselben Namen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2507756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2507756</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Tue, 06 Sep 2016 14:11:45 GMT</pubDate></item></channel></rss>