<?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[Operator-Präzeden]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wäre sehr froh, wenn mir jemand einen Tipp geben könnte, wo im Folgenden mein Fehler liegt.</p>
<pre><code>int a = 42;
int b;

b = - ++a / 7;

cout &lt;&lt; b &lt;&lt; endl;   // - 41/7
</code></pre>
<p>Wenn ich den Ausdruck in Linie(3) nach den Präzedenzen klammere, dann ergibt sich doch:</p>
<p>(- (++a)) / 7</p>
<p>Vorzeichen und Pre-Inkrement haben die selbe Präzedenz, die Assoziativität ist von links nach rechts, also gilt</p>
<p>(1.) Vorzeichen a =&gt; -a d.h a== -42<br />
(2.) Inkrement ++a d.h. a== -41<br />
(3.) Division d.h. b == -41/6</p>
<p>Mein Compiler gibt liefert mir jedoch die Zahl -6. Ich gehe also davon aus, dass zuerst das Inkrement von a gebildet wird, bevor das Vorzeichen angefügt wird.</p>
<p>Kann mir bitte jemand einen Tipp geben, warum dies so ist.</p>
<p>Vielen Dank für alle Antworten schon jetzt</p>
<p>Eine gute Woche<br />
Magalie</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321018/operator-präzeden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 14:07:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321018.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Oct 2013 06:38:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator-Präzeden on Mon, 21 Oct 2013 06:38:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wäre sehr froh, wenn mir jemand einen Tipp geben könnte, wo im Folgenden mein Fehler liegt.</p>
<pre><code>int a = 42;
int b;

b = - ++a / 7;

cout &lt;&lt; b &lt;&lt; endl;   // - 41/7
</code></pre>
<p>Wenn ich den Ausdruck in Linie(3) nach den Präzedenzen klammere, dann ergibt sich doch:</p>
<p>(- (++a)) / 7</p>
<p>Vorzeichen und Pre-Inkrement haben die selbe Präzedenz, die Assoziativität ist von links nach rechts, also gilt</p>
<p>(1.) Vorzeichen a =&gt; -a d.h a== -42<br />
(2.) Inkrement ++a d.h. a== -41<br />
(3.) Division d.h. b == -41/6</p>
<p>Mein Compiler gibt liefert mir jedoch die Zahl -6. Ich gehe also davon aus, dass zuerst das Inkrement von a gebildet wird, bevor das Vorzeichen angefügt wird.</p>
<p>Kann mir bitte jemand einen Tipp geben, warum dies so ist.</p>
<p>Vielen Dank für alle Antworten schon jetzt</p>
<p>Eine gute Woche<br />
Magalie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2361718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2361718</guid><dc:creator><![CDATA[Magalie]]></dc:creator><pubDate>Mon, 21 Oct 2013 06:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to Operator-Präzeden on Mon, 21 Oct 2013 06:48:48 GMT]]></title><description><![CDATA[<p>Magalie schrieb:</p>
<blockquote>
<p>Mein Compiler gibt liefert mir jedoch die Zahl -6. Ich gehe also davon aus, dass zuerst das Inkrement von a gebildet wird, bevor das Vorzeichen angefügt wird.</p>
</blockquote>
<p>Die Antwort hast Du doch schon selbst gegeben:</p>
<blockquote>
<p>(- (++a)) / 7</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2361719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2361719</guid><dc:creator><![CDATA[SG1]]></dc:creator><pubDate>Mon, 21 Oct 2013 06:48:48 GMT</pubDate></item><item><title><![CDATA[Reply to Operator-Präzeden on Mon, 21 Oct 2013 07:02:28 GMT]]></title><description><![CDATA[<p>Hallo SG1,</p>
<p>vielen Dank für deine Antwort. Ich weiss, das ist jetzt vermutlich eine sehr blöde Frage aber-</p>
<p>ich dachte, ich muss den Ausdruck bei gleicher Präzedenz gemäss der Assoziativität lesen.<br />
Das heisst in diesem Falle müsste ich den Ausdruck von links nach rechts lesen.</p>
<p>Darum zuerst das Vorzeichen, dann der Inkrement Operator.</p>
<p>Ich bin da wohl noch etwas verwirrt.</p>
<p>Magalie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2361723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2361723</guid><dc:creator><![CDATA[Magalie]]></dc:creator><pubDate>Mon, 21 Oct 2013 07:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Operator-Präzeden on Mon, 21 Oct 2013 07:12:47 GMT]]></title><description><![CDATA[<p><a href="http://en.cppreference.com/w/cpp/language/operator_precedence" rel="nofollow">Hier</a> stehts doch: von rechts nach links.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2361725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2361725</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 21 Oct 2013 07:12:47 GMT</pubDate></item><item><title><![CDATA[Reply to Operator-Präzeden on Mon, 21 Oct 2013 07:45:35 GMT]]></title><description><![CDATA[<p>Assoziativität macht bei einstelligen Operatoren überhaupt keinen Sinn. Ich weiß nicht, warum diese Tabellenschreiber da immer irgendwas hinschreiben müssen. Das verwirrt die Leute offensichtlich nur. op1 op2 x heißt *immer* op1 (op2 x), anders geht es nicht.</p>
<p>Assoziativität bedeutet, wie Ketten von zweistelligen Operatoren interpretiert werden. Beispiel:</p>
<p>x + y - z bedeutet (x + y) - z (nicht x + (y - z)), links wird zuerst zusammengefasst, d.h. Linksassoziativität.</p>
<p>x = y = 42 bedeutet x = (y = 42), nicht (x = y) = 42 (zum Glück), Rechtsassoziativität.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2361734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2361734</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 21 Oct 2013 07:45:35 GMT</pubDate></item></channel></rss>