<?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[Fragen zu Pointern]]></title><description><![CDATA[<p>Hi!</p>
<p>Das Thema Pointer lässt noch einige Fragen offen. Ich hoffe Ihr könnt mir etwas Helfen damit ich das endlich richtig verstehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich habe folgende Methoden:</p>
<pre><code>void printArr(int* a, int length);

int* par;
int ar [] = {1,2,3,4,5};

par = ar;
printArr(par, 5);
</code></pre>
<p>Übergebe ich hier tatsächlich nur den Zeiger auf ar?<br />
wieso funktioniet nicht der Aufruf</p>
<pre><code>printArr(&amp;ar, 5);
</code></pre>
<p>vielen Dank schon mal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326181/fragen-zu-pointern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 06:20:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326181.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jun 2014 12:31:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen zu Pointern on Thu, 05 Jun 2014 12:31:14 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Das Thema Pointer lässt noch einige Fragen offen. Ich hoffe Ihr könnt mir etwas Helfen damit ich das endlich richtig verstehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich habe folgende Methoden:</p>
<pre><code>void printArr(int* a, int length);

int* par;
int ar [] = {1,2,3,4,5};

par = ar;
printArr(par, 5);
</code></pre>
<p>Übergebe ich hier tatsächlich nur den Zeiger auf ar?<br />
wieso funktioniet nicht der Aufruf</p>
<pre><code>printArr(&amp;ar, 5);
</code></pre>
<p>vielen Dank schon mal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2402567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2402567</guid><dc:creator><![CDATA[gescom]]></dc:creator><pubDate>Thu, 05 Jun 2014 12:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Pointern on Thu, 05 Jun 2014 12:54:07 GMT]]></title><description><![CDATA[<p>Hi,<br />
jain. Du übergibst an deine Funktion schon das Array. Aber es gibt bestimmte Situationen (nicht nur hier, auch wo anders), bei dem ein Array automatisch in einen Zeiger auf das erste Element des Arrays verfällt. Nennt sich array-to-pointer-decay. In deinem Beispiel ist das sogar 2x passiert. Bei der Übergabe des Arrays an deine Funktion, und hier</p>
<pre><code>par = ar;
</code></pre>
<p>Würdest du hier kein array-to-pointer-decay wollen, hättest du</p>
<pre><code>par = &amp;ar[0];
</code></pre>
<p>schreiben müssen.</p>
<pre><code>printArr(&amp;ar, 5);
</code></pre>
<p>Hier übergibst du die Adresse eines &quot;int-Arrays mit 5 Elementen&quot;. Der passende Zeiger dazu ist</p>
<pre><code>int (*p)[5];
// Also
int (*p)[5] = &amp;ar;
</code></pre>
<p>Du musst also unterscheiden zwischen einem Zeiger auf das erste Element eines Arrays und einem Zeiger auf das ganze Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2402577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2402577</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 05 Jun 2014 12:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Pointern on Thu, 05 Jun 2014 15:42:07 GMT]]></title><description><![CDATA[<p>Danke für die Antwort!</p>
<p>Ich finde es trotzdem noch ziemlich verwirrend.</p>
<pre><code>par = ar; // par zeigt auf das erste Element in ar, array to pointer decay
par = &amp;ar[0]; // wie oben, ohne array to pointer decay
</code></pre>
<p>stimmt das?</p>
<p>Wieso wird</p>
<pre><code>int (*p)[5]
</code></pre>
<p>in Klammern gesetzt? Leerzeichen spielen ja in diesem Fall keine Rolle aber</p>
<pre><code>datentyp * var
</code></pre>
<p>definiert einen Zeiger während</p>
<pre><code>*var
</code></pre>
<p>der Dereferenzierung dient. Wozu also die Klammerung um *p? Irgendeine Konvention?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2402597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2402597</guid><dc:creator><![CDATA[gescom]]></dc:creator><pubDate>Thu, 05 Jun 2014 15:42:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu Pointern on Thu, 05 Jun 2014 16:02:02 GMT]]></title><description><![CDATA[<p>gescom schrieb:</p>
<blockquote>
<pre><code>par = ar; // par zeigt auf das erste Element in ar, array to pointer decay
par = &amp;ar[0]; // wie oben, ohne array to pointer decay
</code></pre>
<p>stimmt das?</p>
</blockquote>
<p>Richtig.</p>
<p>gescom schrieb:</p>
<blockquote>
<p>Wieso wird</p>
<pre><code>int (*p)[5]
</code></pre>
<p>in Klammern gesetzt? Leerzeichen spielen ja in diesem Fall keine Rolle aber</p>
<pre><code>datentyp * var
</code></pre>
<p>definiert einen Zeiger während</p>
<pre><code>*var
</code></pre>
<p>der Dereferenzierung dient. Wozu also die Klammerung um *p? Irgendeine Konvention?</p>
</blockquote>
<p>Hmm wie soll ich das erklären. Es gibt Regeln, wie man eine Deklaration ließt.</p>
<pre><code>int (*p)[5];
</code></pre>
<ol>
<li>Ausgehend vom Variablennamen musst du erst nach links gehen, weil nach <code>p</code> eine <code>normale Klammer zu</code> kommt. Und links vom <code>p</code> steht ein <code>*</code> . <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Man ließt also &quot;p ist ein Zeiger&quot;</li>
</ol>
<p>2. Dann gehst du nach rechts und triffst auf []. Das Symbol für ein Array <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Man ließt also &quot;p ist ein Zeiger auf ein Array&quot;</p>
<p>3. Jetzt bleibt nur noch das links von der <code>normalen Klammer auf</code> , also int. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Man ließt also &quot;p ist ein Zeiger auf ein int-Array&quot;. Du kannst noch die 5 mit einbeziehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> &quot;p ist ein Zeiger auf ein Array mit 5 int&quot;</p>
<p>Wenn du jetzt aber diese Deklaration hast:</p>
<pre><code>int *p[5];
</code></pre>
<p>1. Nun kommt nach <code>p</code> keine <code>normale Klammer zu</code> , sondern gleich []. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Man ließt also &quot;p ist ein Array&quot;</p>
<p>2. Jetzt bleibt nur noch das links vom Variablennamen, also int* (ein int-Zeiger). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> &quot;p ist ein Array mit 5 int-Zeigern.</p>
<p>Oben hast du also ein Zeiger auf ein Array definiert. Unten hast du ein Array bestehend aus 5 Zeigern definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2402602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2402602</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 05 Jun 2014 16:02:02 GMT</pubDate></item></channel></rss>