<?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[Bitte Auflärung!]]></title><description><![CDATA[<p>Ich habe folgendes Programm, komme aber nicht dahinter, warum er bei dem Durchlauf auf folgende Ergebnisse, sowie &quot;i&quot; und &quot;j&quot; Werte kommt. Das fängt schon in der ersten zeile an, wo das i post dekrementiert wird, jedoch eine Ausgabe von &quot;i&quot; als &quot;1&quot; erfolgt. Kann mir hier jemand evtl helfen?<br />
Man würde mir wirklich sehr helfen, vielen Dank</p>
<p>#include&lt;stdio.h&gt;</p>
<p>void main()<br />
{<br />
int i,j,erg;<br />
i=j=0;<br />
erg=i++&amp;&amp;j++;<br />
printf(&quot;%d,%d,%d\n&quot;,i,j); /* 0,1,0*/</p>
<p>i=j=0;<br />
erg=++i&amp;&amp;++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,1*/</p>
<p>i=j=0;<br />
erg=i++||j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,1*/</p>
<p>i=j=0;<br />
erg=++i&amp;&amp;j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,1*/</p>
<p>i=j=0;<br />
erg=++i||j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,0*/</p>
<p>i=j=0;<br />
erg=i++&amp;&amp;++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,0*/</p>
<p>i=j=0;<br />
erg=i++||++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,1*/<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172627/bitte-auflärung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 01:42:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172627.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Feb 2007 22:38:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitte Auflärung! on Tue, 06 Feb 2007 22:38:19 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Programm, komme aber nicht dahinter, warum er bei dem Durchlauf auf folgende Ergebnisse, sowie &quot;i&quot; und &quot;j&quot; Werte kommt. Das fängt schon in der ersten zeile an, wo das i post dekrementiert wird, jedoch eine Ausgabe von &quot;i&quot; als &quot;1&quot; erfolgt. Kann mir hier jemand evtl helfen?<br />
Man würde mir wirklich sehr helfen, vielen Dank</p>
<p>#include&lt;stdio.h&gt;</p>
<p>void main()<br />
{<br />
int i,j,erg;<br />
i=j=0;<br />
erg=i++&amp;&amp;j++;<br />
printf(&quot;%d,%d,%d\n&quot;,i,j); /* 0,1,0*/</p>
<p>i=j=0;<br />
erg=++i&amp;&amp;++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,1*/</p>
<p>i=j=0;<br />
erg=i++||j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,1*/</p>
<p>i=j=0;<br />
erg=++i&amp;&amp;j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,1*/</p>
<p>i=j=0;<br />
erg=++i||j++;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,0*/</p>
<p>i=j=0;<br />
erg=i++&amp;&amp;++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*0,1,0*/</p>
<p>i=j=0;<br />
erg=i++||++j;<br />
printf(&quot;%d,%d,%d\n&quot;,erg,i,j); /*1,1,1*/<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224154</guid><dc:creator><![CDATA[YAW]]></dc:creator><pubDate>Tue, 06 Feb 2007 22:38:19 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Auflärung! on Tue, 06 Feb 2007 23:25:49 GMT]]></title><description><![CDATA[<p>sorry, meine natürlich inkrementiert....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224166</guid><dc:creator><![CDATA[YAW]]></dc:creator><pubDate>Tue, 06 Feb 2007 23:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Auflärung! on Tue, 06 Feb 2007 23:33:01 GMT]]></title><description><![CDATA[<p>Der Unterschied zwischen einem Präfix- und Postfix-Inkrement Operator ist, dass die Postfixversion bei der Inkrementierung den vorherigen Wert der Variable zurückliefert; die Präfixversion dagegen sofort den Neuen. Dies gilt auch für die Dekrement-Operatoren. Im Klartext heißt es, dass</p>
<pre><code class="language-cpp">int a = 0;
a++; // a++ liefert 0 zurück, a wird jedoch um 1 erhöht
int b = a; // a = b = 1
</code></pre>
<p>äquivalent zu</p>
<pre><code class="language-cpp">int a = 0;
int b = ++a; // a = b = 1
</code></pre>
<p>ist.</p>
<p>Im Übrigen gibt die main-Funktion stets einen int zurück. Auch übergibst du beim ersten printf-Aufruf nur zwei Variablen, obwohl drei Format-Spezifizierer angegeben wurden, womöglich vergessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224169</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Tue, 06 Feb 2007 23:33:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Auflärung! on Tue, 06 Feb 2007 23:35:31 GMT]]></title><description><![CDATA[<p>Erstmal folgendes:<br />
&lt;stdio.h&gt; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> &lt;cstdio&gt;<br />
void main() <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> int main()</p>
<p>Nun zu deinem Code. Die logischen Operatoren arbeiten nach dem Prinzip, dass immer nur soviel ausgewertet wird, wie notwendig ist. Beim logischen UND bedeutet das, dass der zweite Operand nicht ausgewertet wird, falls der erste false ergibt. Beim logischen ODER bedeutet das, dass der zweite Operand nicht ausgewertet wird, falls der erste true ergibt. Forme mit diesem Wissen mal alle Beispiele um, so dass du siehst, was der Compiler daraus macht. Dann sollte auch deutlich werden, wie die Ausgaben zustande kommen.</p>
<p>Bsp.:</p>
<pre><code class="language-cpp">i=j=0;
     erg=i++&amp;&amp;j++;
     // -&gt;
     erg=i&amp;&amp;j; // i=0, j=0 -&gt; erg=0
     i+=1; // i++ -&gt; i=1
     // j++ wird nicht ausgewertet, da der erste Operand beim UND Operator false ist
     // -&gt; erg=0, i=1, j=0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1224170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224170</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 06 Feb 2007 23:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Auflärung! on Wed, 07 Feb 2007 10:44:17 GMT]]></title><description><![CDATA[<p>Hallo shlo und groovemaster,</p>
<p>vielen dank für die antwort. ihr habt mir und anderen sehr geholfen</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224328</guid><dc:creator><![CDATA[YAW]]></dc:creator><pubDate>Wed, 07 Feb 2007 10:44:17 GMT</pubDate></item></channel></rss>