<?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[Pointer =&amp;gt; Verständisproblem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin es schon wieder <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=":/"
      alt="😕"
    /></p>
<p>ich hab jetzt das komplette pointer kapitel in c++ primer durch und muss sagen das ich pointer immer noch nicht verstanden habe.</p>
<p>ich mache mal ein kleines bsp</p>
<pre><code class="language-cpp">andy = 25;
fred = andy;
ted = &amp;andy; 
beth = ted;   // beth equal to ted ( 1776 )
beth = *ted;  // beth equal to value pointed by ted ( 25 )
</code></pre>
<p>dieses bsp habe ich aus =&gt; <a href="http://www.cplusplus.com/doc/tutorial/pointers/" rel="nofollow">http://www.cplusplus.com/doc/tutorial/pointers/</a></p>
<p>Also mir ist klar andy wird 25 auf den speicher &quot;1776&quot; zugewiesen.</p>
<p>Fred = andy // Ich dachte weil andy 25 ist wird Fred auch zu 25 aber auf einem anderen Speicher zB 1777.</p>
<p>ted = &amp;andy // ist also 1776 und 25 ist momentan auf 1776 gespeichert. Also ist Ted und Andy 25 un teilen sich einen speicher. Ist das richtig ?</p>
<p>Nun kommt das was ich nicht verstehe</p>
<pre><code class="language-cpp">beth = ted;   // beth equal to ted ( 1776 )
beth = *ted;  // beth equal to value pointed by ted ( 25 )
</code></pre>
<p>Wenn beth = ted ist, hat dann beth nicht einen anderen speicher als 1776 ? Ich dachte deshalb sind pointer so gut , da man nicht unnötig viel speicher braucht.</p>
<p>anscheinend habe ich pointer überhaupt nicht verstanden.</p>
<p>Kennt ihr eine Seite wo ich mir das nochmal durchlesen kann ? <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>
<p>tut mir leid das ich so viel frage.</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290622/pointer-gt-verständisproblem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 18:58:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290622.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jul 2011 13:56:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer =&amp;gt; Verständisproblem on Sat, 30 Jul 2011 13:56:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin es schon wieder <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=":/"
      alt="😕"
    /></p>
<p>ich hab jetzt das komplette pointer kapitel in c++ primer durch und muss sagen das ich pointer immer noch nicht verstanden habe.</p>
<p>ich mache mal ein kleines bsp</p>
<pre><code class="language-cpp">andy = 25;
fred = andy;
ted = &amp;andy; 
beth = ted;   // beth equal to ted ( 1776 )
beth = *ted;  // beth equal to value pointed by ted ( 25 )
</code></pre>
<p>dieses bsp habe ich aus =&gt; <a href="http://www.cplusplus.com/doc/tutorial/pointers/" rel="nofollow">http://www.cplusplus.com/doc/tutorial/pointers/</a></p>
<p>Also mir ist klar andy wird 25 auf den speicher &quot;1776&quot; zugewiesen.</p>
<p>Fred = andy // Ich dachte weil andy 25 ist wird Fred auch zu 25 aber auf einem anderen Speicher zB 1777.</p>
<p>ted = &amp;andy // ist also 1776 und 25 ist momentan auf 1776 gespeichert. Also ist Ted und Andy 25 un teilen sich einen speicher. Ist das richtig ?</p>
<p>Nun kommt das was ich nicht verstehe</p>
<pre><code class="language-cpp">beth = ted;   // beth equal to ted ( 1776 )
beth = *ted;  // beth equal to value pointed by ted ( 25 )
</code></pre>
<p>Wenn beth = ted ist, hat dann beth nicht einen anderen speicher als 1776 ? Ich dachte deshalb sind pointer so gut , da man nicht unnötig viel speicher braucht.</p>
<p>anscheinend habe ich pointer überhaupt nicht verstanden.</p>
<p>Kennt ihr eine Seite wo ich mir das nochmal durchlesen kann ? <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>
<p>tut mir leid das ich so viel frage.</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099823</guid><dc:creator><![CDATA[kantaki]]></dc:creator><pubDate>Sat, 30 Jul 2011 13:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer =&amp;gt; Verständisproblem on Sat, 30 Jul 2011 14:17:21 GMT]]></title><description><![CDATA[<p>Auch wenn du nicht dazugeschrieben hast, welchen Datentyp diese Variablen haben, ist vermutlich eine der beiden Zuweisungen zu beth ein Compilerfehler. (OK, mit nutzerdefinierten Typen und überladenen Operatoren könnte es funktionieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099826</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 30 Jul 2011 14:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer =&amp;gt; Verständisproblem on Sat, 30 Jul 2011 14:41:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int i = 5; // i = 5
int *p = &amp;i; // p = adressevon(i)
int **q = &amp;p; // q = adressevon(p)
int j = **q; // j = 5, doppelt dereferenziert.
</code></pre>
<blockquote>
<p>Ich dachte deshalb sind pointer so gut , da man nicht unnötig viel speicher braucht.</p>
</blockquote>
<p>Das ist zwar nicht der einzige Zweck, aber um das Beispiel hier mal auszuführen.</p>
<pre><code class="language-cpp">void printint(int *i) // macht selten Sinn, da meist sizeof(void*) &gt;= sizeof(int)
{ // hier kann man auch gleich (int i) schreiben und den Wert direkt übergeben. (Es sei denn, man möchte den Wert den übergebenen Variablen ändern.
  cout &lt;&lt; *i;
}
</code></pre>
<pre><code class="language-cpp">void printIrgendEinGroßesStruct(IrgendEinGroßesStruct *p) // Hier spart man Speicherplatz.
{
  cout &lt;&lt; p-&gt;member1 &lt;&lt; &quot; &quot; &lt;&lt; p-&gt;member2 &lt;&lt; ...
}
</code></pre>
<p>Soweit zu C, in C++ solltest du dir unbedingt auch noch <a href="http://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Weitere_Grundelemente/_Referenzen" rel="nofollow">Referenzen</a> angucken. <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/2099829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099829</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 30 Jul 2011 14:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer =&amp;gt; Verständisproblem on Sun, 31 Jul 2011 00:33:59 GMT]]></title><description><![CDATA[<blockquote>
<p>ted = &amp;andy // ist also 1776 und 25 ist momentan auf 1776 gespeichert. Also ist Ted und Andy 25 und teilen sich einen Speicher. Ist das richtig ?</p>
</blockquote>
<p>Nein, so wie ich dich verstanden habe, ist dies nicht richtig.</p>
<p>Ein Zeiger teilt sich nicht den Speicherplatz mit einer anderen Variable, sondern ist eine eigenständige Variable (in 32 Bit System: 4 Byte groß) und hat als Inhalt die Adresse einer anderen Variable/Daten/etc. Damit verweist sie lediglich auf die Stelle im Arbeitsspeicher, in der die gewünschten Daten sich befinden.</p>
<p>Nehmen wir als Beispiel:</p>
<pre><code class="language-cpp">int andy = 25;
int fred = andy;
int* ted = &amp;andy;
int beth = (unsigned int)ted;
beth = *ted;
</code></pre>
<pre><code>Adresse (div 4): ... 1775 1776 1777 1778 1779 ....
Name der Variable:        andy fred ted  beth
Wert der Variable:        25   25   1776 [b]1.[/b] 1776 [b]2.[/b] 25
</code></pre>
<p>Verwandelst du also den Wert eines Zeigers in einen Integer, erhältst du die Adresse, auf welche der Zeiger verweist. Um auf die Daten dieser anvisierten Variablen zuzugreifen, musst du den Zeiger dereferenzieren,</p>
<pre><code class="language-cpp">*ted
</code></pre>
<p>.</p>
<p>Du hast also keinen Speichervorteil für kleine Datentypen. Speichervorteil gibt es erst wenn du größere Mengen an Daten hast, welche du während einen Funktionsaufrufs nicht kopieren möchtest. Dann kannst du einen Zeiger übergeben, welcher lediglich 4 Byte groß ist, und damit auf die größere Menge an Daten im Speicher zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099955</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Sun, 31 Jul 2011 00:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer =&amp;gt; Verständisproblem on Sun, 31 Jul 2011 09:43:46 GMT]]></title><description><![CDATA[<p>ah okay danke</p>
<p>super erklärt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p><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/2099992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099992</guid><dc:creator><![CDATA[kantaki]]></dc:creator><pubDate>Sun, 31 Jul 2011 09:43:46 GMT</pubDate></item></channel></rss>