<?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[Verständnis Problem mit Pointer]]></title><description><![CDATA[<p>Wieso hat ptr2 hier am ende den selben Wert wie ptr1 ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{

int firstvalue = 5, secondvalue = 15;
int * p1, * p2;

  p1 = &amp;firstvalue;
  p2 = &amp;secondvalue;

  *p1 = 10;
  *p2 = *p1;

  cout&lt;&lt;&quot;*p1: &quot;&lt;&lt; * p1 &lt;&lt; endl;
   cout &lt;&lt; &quot;*p2: &quot; &lt;&lt; * p2 &lt;&lt; endl;
   cout&lt;&lt;&quot;Firstvalue: &quot;&lt;&lt; firstvalue &lt;&lt; endl;

  cout&lt;&lt;&quot;-----------------------------------------------------&quot;&lt;&lt;endl;

   p1 = p2;   // immer wenn sich jetzt der wert von p1 ändert ändert
              // sich dann auch immer der wert von p2 ?
   *p1 = 30;

   cout&lt;&lt;&quot;*p1: &quot;&lt;&lt; * p1 &lt;&lt; endl;
   cout&lt;&lt;&quot;*p2: &quot;&lt;&lt; * p2 &lt;&lt;endl;
   cout&lt;&lt;&quot;secondvalue: &quot; &lt;&lt; secondvalue &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Bei normalen Variablen wäre das ja so:</p>
<p>Das leuchtet mir auch ein wieso ptr2 hier nicht den Wert von ptr1 am ende hat.<br />
Aber wie ist das bei den Pointern ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
int var1 = 1;
int var2 = 2;

var1 = var2;

var1 = 3;

cout&lt;&lt;&quot;var1: &quot;&lt;&lt; var1 &lt;&lt; endl;
cout&lt;&lt;&quot;var2: &quot;&lt;&lt; var2 &lt;&lt; endl;   // var2 behält den wert 2

system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/257065/verständnis-problem-mit-pointer</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 16:04:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257065.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Dec 2009 10:06:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 10:06:16 GMT]]></title><description><![CDATA[<p>Wieso hat ptr2 hier am ende den selben Wert wie ptr1 ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{

int firstvalue = 5, secondvalue = 15;
int * p1, * p2;

  p1 = &amp;firstvalue;
  p2 = &amp;secondvalue;

  *p1 = 10;
  *p2 = *p1;

  cout&lt;&lt;&quot;*p1: &quot;&lt;&lt; * p1 &lt;&lt; endl;
   cout &lt;&lt; &quot;*p2: &quot; &lt;&lt; * p2 &lt;&lt; endl;
   cout&lt;&lt;&quot;Firstvalue: &quot;&lt;&lt; firstvalue &lt;&lt; endl;

  cout&lt;&lt;&quot;-----------------------------------------------------&quot;&lt;&lt;endl;

   p1 = p2;   // immer wenn sich jetzt der wert von p1 ändert ändert
              // sich dann auch immer der wert von p2 ?
   *p1 = 30;

   cout&lt;&lt;&quot;*p1: &quot;&lt;&lt; * p1 &lt;&lt; endl;
   cout&lt;&lt;&quot;*p2: &quot;&lt;&lt; * p2 &lt;&lt;endl;
   cout&lt;&lt;&quot;secondvalue: &quot; &lt;&lt; secondvalue &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Bei normalen Variablen wäre das ja so:</p>
<p>Das leuchtet mir auch ein wieso ptr2 hier nicht den Wert von ptr1 am ende hat.<br />
Aber wie ist das bei den Pointern ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
int var1 = 1;
int var2 = 2;

var1 = var2;

var1 = 3;

cout&lt;&lt;&quot;var1: &quot;&lt;&lt; var1 &lt;&lt; endl;
cout&lt;&lt;&quot;var2: &quot;&lt;&lt; var2 &lt;&lt; endl;   // var2 behält den wert 2

system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1826265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826265</guid><dc:creator><![CDATA[*ptr]]></dc:creator><pubDate>Tue, 22 Dec 2009 10:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 10:11:44 GMT]]></title><description><![CDATA[<p>Sry mein 2tes Beispiel war falsch hier ist jetzt das richtige:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{

int var1 = 10;
int var2 = 30;

int ptr1;
int ptr2;

ptr1 = var1;
ptr2 = var2;

ptr1 = ptr2;

ptr1 = 40;

cout&lt;&lt;&quot;var1: &quot;&lt;&lt;  ptr1 &lt;&lt; endl;
cout&lt;&lt;&quot;var2: &quot;&lt;&lt; ptr2 &lt;&lt; endl;   // var2 behält den wert 2

system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1826271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826271</guid><dc:creator><![CDATA[*ptr]]></dc:creator><pubDate>Tue, 22 Dec 2009 10:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 10:31:54 GMT]]></title><description><![CDATA[<blockquote>
<p>int ptr1;<br />
int ptr2;</p>
</blockquote>
<p>Das sind keine Pointer!</p>
<blockquote>
<p>ptr1 = var1;<br />
ptr2 = var2;</p>
</blockquote>
<p>Jetzt kopierst du die Inhalte in die beiden Integer-Variablen.</p>
<blockquote>
<p>ptr1 = ptr2;</p>
</blockquote>
<p>Jetzt kopierst du den Inhalt von ptr2 in ptr1</p>
<blockquote>
<p>ptr1 = 40;</p>
</blockquote>
<p>Jetzt kopierst du 40 nach ptr1. ptr2 interessiert das nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1826279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826279</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Tue, 22 Dec 2009 10:31:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 10:35:23 GMT]]></title><description><![CDATA[<p>Ich weiss das dass hier keine Pointer sind !</p>
<p>int ptr1;<br />
int ptr2 .......</p>
<p>Es ging ja auch um das erste Beispiel das verstehe ich nicht.</p>
<p>Das hast du bestimmt nicht gelesen !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1826281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826281</guid><dc:creator><![CDATA[*ptr]]></dc:creator><pubDate>Tue, 22 Dec 2009 10:35:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 10:40:53 GMT]]></title><description><![CDATA[<p>Ja der Wert von Ptr2 wird sich immer ändern wenn du den Wert von Ptr1 änderst.</p>
<p>Denn im Grunde genonommen hat ja Ptr1 gar keinen Wert mehr nach:</p>
<p>Ptr 1 = Ptr2</p>
<p>denn es übernimmt den Wert von Ptr2, der ja eigentlich auch keinen Wert hat, sondern bloss weiter pointet :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1826282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826282</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Tue, 22 Dec 2009 10:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 11:07:03 GMT]]></title><description><![CDATA[<p>Samyboy schrieb:</p>
<blockquote>
<p>Ja der Wert von Ptr2 wird sich immer ändern wenn du den Wert von Ptr1 änderst.</p>
<p>Denn im Grunde genonommen hat ja Ptr1 gar keinen Wert mehr nach:</p>
<p>Ptr 1 = Ptr2</p>
<p>denn es übernimmt den Wert von Ptr2, der ja eigentlich auch keinen Wert hat, sondern bloss weiter pointet :p</p>
</blockquote>
<p>Genau genommen ist der Wert eines Zeigers eine Speicheradresse (oder 0). Nur, ob das, worauf die Adresse zeigt Sinn macht oder nicht ist eine andere Frage und kann alleine durch den Zeiger nicht beantwortet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1826297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826297</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 22 Dec 2009 11:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnis Problem mit Pointer on Tue, 22 Dec 2009 11:15:30 GMT]]></title><description><![CDATA[<p>*ptr schrieb:</p>
<blockquote>
<pre><code class="language-cpp">p1 = p2;   // immer wenn sich jetzt der wert von p1 ändert ändert
              // sich dann auch immer der wert von p2 ?
</code></pre>
</blockquote>
<p>Jetzt zeigt p1 auf die selbe Speicheradresse, wie p2.</p>
<p>*ptr schrieb:</p>
<blockquote>
<pre><code class="language-cpp">*p1 = 30;
</code></pre>
</blockquote>
<p>Jetzt wurde der Speicherinhalt verändert, auf den p1 zeigt. Und da p2 ja auf die selbe Adresse zeigt, kannst Du auf diesen Speicherinhalt entweder mit *p1 oder *p2 zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1826301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1826301</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Tue, 22 Dec 2009 11:15:30 GMT</pubDate></item></channel></rss>