<?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[Variable über Zeiger verändern]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem mit einer Zeigerübergabe.</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormCreate(TObject *Sender)
{
     char x;
     abc(&amp;x);
     x = x;                     //x = 6 sollte aber 7 sein.
}
//---------------------------------------------------------------------------
void TForm1::abc(char* y)
{
     *y = 6;
     *y++;               //Hier wird der Zeiger y erhöht und nicht die 
                         //Variable x warum? 
     return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/85414/variable-über-zeiger-verändern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 06:40:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/85414.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Sep 2004 15:18:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 15:18:32 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem mit einer Zeigerübergabe.</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormCreate(TObject *Sender)
{
     char x;
     abc(&amp;x);
     x = x;                     //x = 6 sollte aber 7 sein.
}
//---------------------------------------------------------------------------
void TForm1::abc(char* y)
{
     *y = 6;
     *y++;               //Hier wird der Zeiger y erhöht und nicht die 
                         //Variable x warum? 
     return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/602602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602602</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 08 Sep 2004 15:18:32 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 15:40:00 GMT]]></title><description><![CDATA[<p>Hast Du's schon mal mit Klammern probiert?<br />
Ich habe eben mal nachgeschlagen, wie die Priorität von * gegenüber ++ ist. Die scheint gleich zu sein.<br />
In diesem Fall entscheidet sich der Compiler wohl für eine Reihenfolge der Auswertung, die Dir nicht passt.<br />
Vorschlag:</p>
<pre><code class="language-cpp">++(*y);
</code></pre>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602617</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 08 Sep 2004 15:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 15:45:01 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<pre><code class="language-cpp">++(*y);
</code></pre>
</blockquote>
<p>oder so</p>
<pre><code>*y += 1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/602621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602621</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 08 Sep 2004 15:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 16:34:25 GMT]]></title><description><![CDATA[<p>Moment mal. Ich wäre in die gleiche Falle getappt.</p>
<pre><code class="language-cpp">*y++;
</code></pre>
<p>Das ist doch post inkrementell. Da sollte ganz klar als *y und dieser Ausduck++ ausgewertet werden, oder nicht?</p>
<p>Bei ++*y könnte ich es noch verstehen. Hier macht er es aber seltsamerweise richtig. x wird 7!!</p>
<p>Ich hätte es definitiv anders herum erwartet! Kann das vielleicht mal jemand mit einem anderen Compiler testen? Respektive kann mir jemand sagen, welchem Denkfehler ich aufsitze. <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/602653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602653</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 08 Sep 2004 16:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 16:42:52 GMT]]></title><description><![CDATA[<p>Nach einigem ausprobieren habe ich herausgefunden das es mit *y += 1<br />
klappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602659</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 08 Sep 2004 16:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 17:04:35 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Das ist doch post inkrementell. Da sollte ganz klar als *y und dieser Ausduck++ ausgewertet werden, oder nicht?<br />
Respektive kann mir jemand sagen, welchem Denkfehler ich aufsitze. <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="😕"
    /></p>
</blockquote>
<p>Wie ich bereits geschrieben habe, habe ich das mal in meinem kleinen C/C++-Büchlein nachgeschlagen (C/C++ ge-packt).<br />
Darin habe ich eine Tabelle über die Rangfolge (Prioritäten, Auswertungsreihenfolge) von Operatoren gefunden und in dieser<br />
Tabelle stehen * und ++ auf einer Ebene.<br />
Leider weiß ich nicht, in welcher Reihenfolge dann abgearbeitet wird, aber offenbar hat sich der Borland Compiler für ++<br />
zuerst und dann * entschieden.<br />
Beim preinkrement ++ hat der Compiler keine Wahl - er muß erst * auswerten, um überhaupt etwas inkrementieren zu können.<br />
Würde mich aber auch mal interessieren, ob das mit anderen Compilern auch so läuft.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602672</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 08 Sep 2004 17:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 17:17:03 GMT]]></title><description><![CDATA[<p>Aber hier wird doch der Zeiger durch *-Op derefenziert. Die Frage ist doch dann, ob die Dereferenzierung eine niedrigere Priorität hat, als das Post-Inkrement?! Oder gilt der *-Op generell als Arithmetischer Op, womit meine Frage dann ins Wasser fällt... <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/602682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602682</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Wed, 08 Sep 2004 17:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 17:46:58 GMT]]></title><description><![CDATA[<p>PuppetMaster2k schrieb:</p>
<blockquote>
<p>Aber hier wird doch der Zeiger durch *-Op derefenziert. Die Frage ist doch dann, ob die Dereferenzierung eine niedrigere Priorität hat, als das Post-Inkrement?! Oder gilt der *-Op generell als Arithmetischer Op, womit meine Frage dann ins Wasser fällt... <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="😕"
    /></p>
</blockquote>
<p>Ich habe niemals von dem Multiplikationsoperator gesprochen und auch in dem Büchlein stehen der Dereferenzierungsoperator * und<br />
der Inkrementierungsoperator ++ (egal ob post oder pre) auf einer Ebene.<br />
Der Multipliaktionsoperator * hat sowieso eine niedrigere Priorität.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602718</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 08 Sep 2004 17:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 17:51:17 GMT]]></title><description><![CDATA[<p>Alles klar, war ein Missverständnis meinereits <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="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/602723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602723</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Wed, 08 Sep 2004 17:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 18:11:13 GMT]]></title><description><![CDATA[<p>Aber sowas wie:</p>
<pre><code class="language-cpp">int x=4;
int y=x++;
cout&lt;&lt;y;                //Ausgabe: 4
cout&lt;&lt;x;                //Ausgabe: 5
</code></pre>
<p>Wird doch immer so ausgewertet wie an den kommentaren ersichtlich, oder? Wenn das &quot;++&quot; nach der Variable steht muss doch ein &quot;falsches&quot; Ergebnis rauskommen...<br />
edit: Um ehrlich zu sein versteh ich net was das Programm soll...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602740</guid><dc:creator><![CDATA[ness]]></dc:creator><pubDate>Wed, 08 Sep 2004 18:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 18:39:37 GMT]]></title><description><![CDATA[<p>ness schrieb:</p>
<blockquote>
<p>Wird doch immer so ausgewertet wie an den kommentaren ersichtlich, oder?</p>
</blockquote>
<p>Das ist ja genau meine Rede. Es sollte zuerst dereferenziert werden und dann ein inkrement durchgeführt werden...</p>
<p>Allerdings ergibt Alexanders Aussage einen scheußlichen Sinn: Bei der Schreibweise *y++ liegt es 'im Ermessen des Compilers', welche Operation zuerst ausgeführt wird -&gt; da gleiche Ausführungsprorität!?! <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="😮"
    /> Im Zweifelsfall dann doch lieber einmal zuviel klammern...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602768</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 08 Sep 2004 18:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 19:45:34 GMT]]></title><description><![CDATA[<p>Also *x heist ja eigentlich indirekt über den Zeiger, x wäre ja der Zeiger<br />
selbst.</p>
<p>Warum aber &quot;*x = 6&quot; in der Funktion test1 und &quot;obj-&gt;Text = text&quot; in der Funktion<br />
test2, müsste es nicht eigentlich *obj-&gt;Text heissen?</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormCreate(TObject *Sender)
{
     char z = 0;
     test1(&amp;z);
     test2(Edit1,&quot;hallo&quot;);
     z = z;
}
//---------------------------------------------------------------------------
void TForm1::test1(char* x)
{
     *x = 6;
     return;
}
void TForm1::test2(TEdit* obj,char* text)
{
     obj-&gt;Text = text;
     return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/602807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602807</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 08 Sep 2004 19:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 20:22:50 GMT]]></title><description><![CDATA[<p>Weder bin ich der C++-König noch hat das jetzt speziell irgendwas mit dem BCB oder der VCL zu tun.<br />
Aber in test1() verarbeitest Du ein Argument vom Typ char*, also eine Referenz (Zeiger) auf einen char.<br />
Möchtest Du nun den Wert des char ändern, musst Du - wie geschehen - zunächst mit * dereferenzieren.<br />
Würdest Du das nicht tun, würdest Du &quot;den Zeiger verbiegen&quot;.</p>
<p>In test2() hast Du eine Referenz auf ein TEdit. TEdit hat eine Eigenschaft &quot;Text&quot;. Um diese Eigenschaft<br />
ansprechen zu können, muss auch hier mit *dereferenziert werden. Anschließend kann man mit .Text die<br />
entsprechende Eigenschaft lesen/ändern. Die Kurzform von * und . ist -&gt;.</p>
<p>Das sind aber eigentlich Grundlagen und falls Dir das klar ist, habe ich die Frage wohl nicht verstanden.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602833</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 08 Sep 2004 20:22:50 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 20:53:53 GMT]]></title><description><![CDATA[<p>Mal so nebenbei, warum in jeder Funktion ein return am Ende wo die Funktion doch eh schon abgearbeitet ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602851</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Wed, 08 Sep 2004 20:53:53 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 22:08:36 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Um diese Eigenschaft ansprechen zu können, muss auch hier mit *dereferenziert werden.</p>
</blockquote>
<p>Es ist mir schon klar das ich nur eine Referenz auf die Variable/ das Objekt<br />
übergebe und wenn ich nicht dereferenziere wird halt der Zeiger verändert.</p>
<p>Das Objekt Edit1 hat seinen eigenenen Speicherbereich für alle seine Eigenschaften der Zeiger wir beim erstellen des Objekts Edit1 erstellt(this).</p>
<p>Das dereferenzieren von obj-&gt;Text passiert also mit dem -&gt;.</p>
<p>Das mit Return mache ich aus Gewohnheit, da ich Jahrelang Assembler<br />
programmiert habe und da ist fatal das ret zu vergessen.<br />
Ausserdem sieh es schöner aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602874</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 08 Sep 2004 22:08:36 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Wed, 08 Sep 2004 22:22:04 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Allerdings ergibt Alexanders Aussage einen scheußlichen Sinn: Bei der Schreibweise *y++ liegt es 'im Ermessen des Compilers', welche Operation zuerst ausgeführt wird -&gt; da gleiche Ausführungsprorität!?! <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="😮"
    /> Im Zweifelsfall dann doch lieber einmal zuviel klammern...</p>
</blockquote>
<p>Es liegt nicht im Ermessen des Compilers. Der Postfix-++ hat eine höhere Rangfolge als der Dereferenzierungsoperator, siehe FAQ: <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39479" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39479</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/602884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602884</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 08 Sep 2004 22:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 00:36:29 GMT]]></title><description><![CDATA[<p>Eine Frage noch zu Edit1-&gt;Text = &quot; &quot;.</p>
<p>Es wird beim Erstellen des Objekts Edit1 ein Speicherbereich für die<br />
Eigenschaften/Variabeln des Ojekts Edit1 der Klasse TEdit bereitgestellt.</p>
<p>Mit TEdit *Edit1 = new TEdit wird ein Zeiger Edit1 erzeugt, nehmen wir an<br />
das Edit1 3 Eigenschaften a,b,c hat die sich im Speicherbereich 10-12 befinden</p>
<p>a-&gt;Adresse10;<br />
b-&gt;Adresse11;<br />
c-&gt;Adresse12;</p>
<p>dann zeigt Edit1-&gt;a auf die Adresse 10, auf welche Adresse zeigt nun aber<br />
der Zeiger *Edit1?</p>
<p>Bashar schrieb:</p>
<blockquote>
<p>Es liegt nicht im Ermessen des Compilers. Der Postfix-++ hat eine höhere Rangfolge als der Dereferenzierungsoperator, siehe FAQ: <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39479" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39479</a></p>
</blockquote>
<pre><code class="language-cpp">++                  postfix increment                           unär
</code></pre>
<p>Was heist unär?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602901</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Thu, 09 Sep 2004 00:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 05:54:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5237">@Hermes</a>:<br />
Unär bezieht sich auf eine mathematische Operation<br />
mit einem einzelnen Operanden (Objekt).</p>
<p>*Edit1 ergibt keinen Zeiger. *ZeigerAufObjekt ergibt das Objekt oder den Wert der sich hinter dem Zeiger verbirgt.</p>
<pre><code class="language-cpp">int x; // Integerobjekt erzeugen
int* y; // Zeiger auf ein Integerobjekt deklarieren
</code></pre>
<p>Um nun über y an den Wert von x zu gelangen muss man *y verwenden. Als Parameter von Funkionsaufrufen ergeben sich deutliche Unterschiede.</p>
<p>Test(x); // Hierbei wird eine Kopie des Integers an die Funktion übergeben. Der Wert kann in der Funktion nicht geändert werden, ohne dass eine Zuweisung erfolgt.</p>
<p>Test(&amp;x); // oder Test(y); Hierbei wird ein Zeiger auf den Integer an die Funktion übergeben. Alle Änderungen an x innerhalb der Funktion wirken sich auf den Originalwert aus.</p>
<pre><code class="language-cpp">int Test(int x)
{
   x++;
   return x;
}
// Funktionsaufruf
int y = 5;
y = Test(y); // ohne diese Zuweisung wird keine Änderung an y durchgeführt.
</code></pre>
<pre><code class="language-cpp">void Test(int* x)
{
   ++*x;  // hier wird direkt die Variable aus der aufrufenden Funktion geändert.
}

//Funktionsaufruf:
int y = 5;
int z = &amp;y;
Test(&amp;y);
// oder
Test(z);
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a>:<br />
Die Tabelle ist im BCB etwas anders:</p>
<pre><code>Operatoren	Abarbeitungsreihenfolge

()	[]	-&gt;	::	.							von links nach rechts
!	~	+	-	++	--	&amp;	*	sizeof	new	delete	von rechts nach links
.* 	-&gt;*										von links nach rechts
*	/	%									von links nach rechts
+	-										von links nach rechts
&lt;&lt;	&gt;&gt;										von links nach rechts
&lt;	&lt;=	&gt;	&gt;=								von links nach rechts
==	!=										von links nach rechts
&amp;											von links nach rechts
^											von links nach rechts
|											von links nach rechts
&amp;&amp;											von links nach rechts
||											von rechts nach links
?:											von links nach rechts
=	*=	/=	%=	+=	-=	&amp;=	^=	|=	&lt;&lt;=	&gt;&gt;=	von rechts nach links
,											von links nach rechts
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/602913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602913</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 09 Sep 2004 05:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 07:18:11 GMT]]></title><description><![CDATA[<p>Joe: Naja, dann zählt eben &quot;rechts nach links&quot;. Kommt auf dasselbe raus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/602948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/602948</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 09 Sep 2004 07:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 08:36:38 GMT]]></title><description><![CDATA[<p>Na ja, ein paar Operatoren haben dann doch eine andere Reihenfolge... z.B. der Scope-Operator :: hat in der Stanley B. Lippman/Josée Lajoie Tabelle die höchste Priorität. In der BCB-Tabelle sind (), [], und -&gt; mit höherer Priorität ausgewiesen. (_grummel_grummel_)</p>
<p>Für das hier geschilderte Problem macht's natürlich keinen Unterschied, da in beiden Fällen ++ die höhere Priorität hat.</p>
<p>Ich bleib dabei: Lieber einmal zuviel klammern, als einmal zu wenig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603014</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 09 Sep 2004 08:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 08:52:50 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Ich bleib dabei: Lieber einmal zuviel klammern, als einmal zu wenig...</p>
</blockquote>
<p>Allein schon wegen der Lesbarkeit. Natürlich macht es Spaß die Kollegen mit kryptischen Ausdrücken zu quälen, aber<br />
wer andern eine Grube gräbt, versteht nächste Woche den eigenen Code nicht mehr...</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603025</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Thu, 09 Sep 2004 08:52:50 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 19:22:14 GMT]]></title><description><![CDATA[<blockquote>
<p>! ~ + - ++ -- &amp; *</p>
</blockquote>
<p>Ok, das ++ hat eine höhere Abarbeitungsreihenfolge wie *.<br />
Ich verstehe aber deswegen immer noch nicht warum nicht die<br />
Variable sonder der Zeiger selbst erhöht wird.<br />
*y++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603640</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Thu, 09 Sep 2004 19:22:14 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 19:37:42 GMT]]></title><description><![CDATA[<p>Das erschließt sich aus der Bedeutung des Begriffs Rangfolge. Wenn Postfix-++ stärker bindet als *, dann ist *y++ dasselbe wie *(y++).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603655</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 09 Sep 2004 19:37:42 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 20:43:57 GMT]]></title><description><![CDATA[<p>Also das finde ich ein wenig verwirrend.</p>
<p>da (y++) aufgrund der Klammern eine höhere Rangfolge hat wie * wird zuerst der Zeiger erhöht<br />
und dann wird doch eigentlich der * ausgeführt oder ignoriert , was passiert denn dann.</p>
<p>Nur aufgrund der Rangfolge ignoriert der Compiler das dereferenzieren.</p>
<p>Wozu ist diese Rangfolge überhaupt da?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603699</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Thu, 09 Sep 2004 20:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Thu, 09 Sep 2004 20:37:15 GMT]]></title><description><![CDATA[<p>Er ignoriert es doch gar nicht. Er wirft es nur wieder weg, weil du das Ergebnis nicht verwendest. Vielleicht ist das mit der Rangfolge noch nicht ganz klar ... erinnere dich an die Grundschulzeit. Punktrechnung vor Strichrechnung. D.h. bei 3 + 4 * 5 wird zuerst 4*5 gerechnet, dann 3 + 20. Also mit Klammern geschrieben 3 + (4 * 5). Hier ist es das gleiche. Ohne Rangfolge wär nicht klar, ob bei *y++ zuerst ++ oder zuerst * angewendet wird. Also ob dieser ausdruck gleichbedeutend mit (*y)++ oder mit *(y++) ist. Da ++ stärker bindet, ist es die zweite Variante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603703</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 09 Sep 2004 20:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to Variable über Zeiger verändern on Sat, 11 Sep 2004 11:22:39 GMT]]></title><description><![CDATA[<p>Garnicht so einfach die Regeln der Mathematik auf die Syntax von C,C++<br />
anzuwenden.</p>
<p>Wäre es nicht sinnvoller, das * eine höhere Rangfolge wie ++ hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/603716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/603716</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sat, 11 Sep 2004 11:22:39 GMT</pubDate></item></channel></rss>