<?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[Inkrement Operator]]></title><description><![CDATA[<p>Huhu Ihrs<br />
Ich bin gerade am sortieren meiner c++ Skripte und bin dabei über folgenden Beispielcode gestolpert.<br />
Dabei verstehe ich nicht warum zuerst die 2 ausgeben wird und dann die 1...</p>
<p>Kann mich wer aufklären <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Danke schonmal <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>
<pre><code>#include &lt;iostream&gt;
using namespace std;

void show( int a, int b)
{
   cout &lt;&lt; a; cout &lt;&lt; b;
}

int main()
{
   int i = 1;
   show( i++, i++ );
   cin.sync(); cin.get();
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/233531/inkrement-operator</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 19:43:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233531.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Feb 2009 15:34:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 15:34:02 GMT]]></title><description><![CDATA[<p>Huhu Ihrs<br />
Ich bin gerade am sortieren meiner c++ Skripte und bin dabei über folgenden Beispielcode gestolpert.<br />
Dabei verstehe ich nicht warum zuerst die 2 ausgeben wird und dann die 1...</p>
<p>Kann mich wer aufklären <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Danke schonmal <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>
<pre><code>#include &lt;iostream&gt;
using namespace std;

void show( int a, int b)
{
   cout &lt;&lt; a; cout &lt;&lt; b;
}

int main()
{
   int i = 1;
   show( i++, i++ );
   cin.sync(); cin.get();
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1658575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658575</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Feb 2009 15:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 15:38:18 GMT]]></title><description><![CDATA[<p>Das liegt daran, dass nicht spezifiert ist, welcher der beiden operanden von show() zuerst ausgewertet wird. In deinem Fall wird zuerst der zweite ausgewertet (Rückgabewert vom Postinkrement ist 1), danach der erste (Rückgabewert 2). Deshalb: mach das nicht zu Hause <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1658578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658578</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 05 Feb 2009 15:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 15:39:31 GMT]]></title><description><![CDATA[<p>es ist üblich, daß zuerst der zweite parameter ausgewertet wird und dann erst der erste.<br />
aber es ist nicht standartisiert. verlass ich nicht drauf. der nächste compiler machts nämlich andersrum vielleicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658580</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 05 Feb 2009 15:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 16:50:28 GMT]]></title><description><![CDATA[<p>ok <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>
<p>thxi nochmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658627</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Feb 2009 16:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 17:12:09 GMT]]></title><description><![CDATA[<p>Das ist übrigens sogar undefiniert (nicht nur unspezifiziert), d.h. es kann überhaupt alles passieren, weil i zwischen zwei Sequenzpunkten zweimal verändert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658638</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 05 Feb 2009 17:12:09 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 17:52:31 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>es ist üblich, daß zuerst der zweite parameter ausgewertet wird und dann erst der erste.</p>
</blockquote>
<p>Ist es das? Welche Idee steckt dahinter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658652</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 05 Feb 2009 17:52:31 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 17:58:22 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>es ist üblich, daß zuerst der zweite parameter ausgewertet wird und dann erst der erste.</p>
</blockquote>
<p>Ist es das? Welche Idee steckt dahinter?</p>
</blockquote>
<p>Die c-calling convention (cdecl).<br />
man will variadic functions erlauben - also funktionen mit unendlich viel parametern. nun ist es so, dass wie bei printf der 1. param aber dennoch fix sein muss (um die restlichen sinnvoll auswerten zu koennen).</p>
<p>hardware maessig hat man zur parameter uebergabe aber nur einen stack (LIFO). dh wir pushen die Elemente in umgekehrter reihenfolge auf den stack:</p>
<pre><code class="language-cpp">print(1,2,3);
</code></pre>
<p>wird zu:</p>
<pre><code class="language-asm">push 3
push 2
push 1
call print
</code></pre>
<p>dadurch kannst du in print ein pop machen und hast den 1. parameter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658654</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 05 Feb 2009 17:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 20:56:46 GMT]]></title><description><![CDATA[<p>Ah okay, danke für die Erklärung.</p>
<p>Bei MSDN steht dazu noch einiges Interessantes, das schau ich mir mal an...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658744</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 05 Feb 2009 20:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 21:07:34 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Die c-calling convention (cdecl).[...]</p>
<pre><code class="language-asm">push 3
push 2
push 1
call print
</code></pre>
<p>dadurch kannst du in print ein pop machen und hast den 1. parameter.</p>
</blockquote>
<p>Nö, dann hast du die Rücksprungadresse. Die Argumente auf dem Stack werden nicht gepoppt, sondern von der Funktion aus relativ zum Stackpointer (zum Zeitpunkt des Funktionseintritts) adressiert. Einfach mal ein simples C-Programm mit gcc -O0 -S übersetzen und den Assembler-Code angucken.<br />
Was die variadischen Funktionen angeht, sollte man bedenken, dass es ursprünglich zu K&amp;R-Zeiten keine Prototypen gab, also quasi alle Funktionen &quot;variadisch&quot; waren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658759</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 05 Feb 2009 21:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Thu, 05 Feb 2009 21:31:55 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Was die variadischen Funktionen angeht, sollte man bedenken, dass es ursprünglich zu K&amp;R-Zeiten keine Prototypen gab, also quasi alle Funktionen &quot;variadisch&quot; waren.</p>
</blockquote>
<p>Früher war halt alles besser... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658762</guid><dc:creator><![CDATA[gebasht]]></dc:creator><pubDate>Thu, 05 Feb 2009 21:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 09:56:42 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Nö, dann hast du die Rücksprungadresse. Die Argumente auf dem Stack werden nicht gepoppt, sondern von der Funktion aus relativ zum Stackpointer (zum Zeitpunkt des Funktionseintritts) adressiert.</p>
</blockquote>
<p>du kennst &quot;A little inaccuracy sometimes saves tons of explanation&quot;?</p>
<p>dass man nicht popt hat einen effizienz grund...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658935</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 06 Feb 2009 09:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 10:01:45 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>du kennst &quot;A little inaccuracy sometimes saves tons of explanation&quot;?</p>
</blockquote>
<p>Was schert es dich, solange ich die &quot;ton of explanation&quot; übernehme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658939</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 06 Feb 2009 10:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 10:08:43 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>&quot;A little inaccuracy sometimes saves tons of explanation&quot;?</p>
</blockquote>
<p>warum sind in diesem forum eigentlich alle sinnsprüche auf englisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658941</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 06 Feb 2009 10:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 10:25:49 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Bashar schrieb:</p>
<blockquote>
<p>Nö, dann hast du die Rücksprungadresse. Die Argumente auf dem Stack werden nicht gepoppt, sondern von der Funktion aus relativ zum Stackpointer (zum Zeitpunkt des Funktionseintritts) adressiert.</p>
</blockquote>
<p>du kennst &quot;A little inaccuracy sometimes saves tons of explanation&quot;?<br />
dass man nicht popt hat einen effizienz grund...</p>
</blockquote>
<p>du würdest wirklich erst die rücksprungadresse popen und in einem register ablegen, dann den ersten patameter pushen, dann die rücksprungadresse pushen, dann den parameter verwarbeiten? oder eins der raren register binden nur um die rücksprungadresse zu halten? oder die rücksprungadresse in einer static-variablen lagern (oops, geht ja gar nicht bei rekursion!). irgendwie halte ich &quot;Nö, dann hast du die Rücksprungadresse&quot; für einen nachweis, daß deine &quot;vereinfachung&quot; nicht nur geschummelt hat, sondern nichts erklärt hat. wie klapperstorch. die komische reihenfolge hat bestimmt nen anderen grund als daß man pop nehmen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658949</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 06 Feb 2009 10:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 12:15:17 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>du würdest wirklich erst die rücksprungadresse popen und in einem register ablegen, dann den ersten patameter pushen, dann die rücksprungadresse pushen, dann den parameter verwarbeiten?</p>
</blockquote>
<p>nein, aber es erklärt sich sehr leicht so.<br />
weil ich einfach rücksprung adresse und stack aufräumen ignorieren kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659004</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 06 Feb 2009 12:15:17 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 12:48:04 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>warum sind in diesem forum eigentlich alle sinnsprüche auf englisch?</p>
</blockquote>
<ol>
<li>Weil hier nur coole Typen sind die perfect auswärts speaken können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></li>
<li>Weil jemand diese Sinnsprüche auf Englisch aufgeschnappt hat und sich nicht die Blöße geben will sie in einer grauenhaften 1 zu 1- Übersetzung ins Deutsche zu übernehmen.</li>
<li>Weils halt echte &quot;geflügelte Worte&quot; oder Redewendungen sind, die man nicht so einfach übersetzen kann. &quot;I have nothing at the hat with English.&quot; <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="😉"
    /></li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1659038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659038</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 06 Feb 2009 12:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 12:50:56 GMT]]></title><description><![CDATA[<p>da sag ich mal nur:<br />
Wenn alles andere fehlschlägt, dann lies das Handbuch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659041</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 06 Feb 2009 12:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 14:11:44 GMT]]></title><description><![CDATA[<p>O.K. dann gilt ab jetzt weaponquietstand <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/1659081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659081</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 06 Feb 2009 14:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement Operator on Fri, 06 Feb 2009 14:48:15 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>da sag ich mal nur:<br />
Wenn alles andere fehlschlägt, dann lies das Handbuch.</p>
</blockquote>
<p>Genau. <em>Everyone the His!</em> *weglauf*</p>
<p>Schönes WE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659107</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 06 Feb 2009 14:48:15 GMT</pubDate></item></channel></rss>