<?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ändnisproblem mit Zeigern]]></title><description><![CDATA[<p>Hallo ich kann folgenden Codeausschnitt nicht ganz nachvollziehen:</p>
<pre><code class="language-cpp">int stack[SIZE], *p;

p = stack; /* p zeigt auf das obere Ende des Stacks */
</code></pre>
<p>Nach meinem Verständnis sollte nun p mit dem Wert befüllt werden, welcher in stack[0] liegt, nicht aber die Adresse von stack[0] enthalten, wie im Kommentar beschrieben.</p>
<p>Nach meinem Verständnis ist p ein Zeiger, welcher somit immer nur Adressen speichert. Um ihn aber die Adresse von stack[0] zuzuweisen sollte es doch eher so funktionieren:</p>
<pre><code class="language-cpp">p = &amp;stack;
</code></pre>
<p>Edit: Und zu SIZE habe ich auch noch eine Frage: Ist das ein fester Wert oder steht er hier im Beispiel vielleicht nur für einen belieben Wert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233819/verständnisproblem-mit-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 15:11:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233819.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Feb 2009 17:26:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:27:38 GMT]]></title><description><![CDATA[<p>Hallo ich kann folgenden Codeausschnitt nicht ganz nachvollziehen:</p>
<pre><code class="language-cpp">int stack[SIZE], *p;

p = stack; /* p zeigt auf das obere Ende des Stacks */
</code></pre>
<p>Nach meinem Verständnis sollte nun p mit dem Wert befüllt werden, welcher in stack[0] liegt, nicht aber die Adresse von stack[0] enthalten, wie im Kommentar beschrieben.</p>
<p>Nach meinem Verständnis ist p ein Zeiger, welcher somit immer nur Adressen speichert. Um ihn aber die Adresse von stack[0] zuzuweisen sollte es doch eher so funktionieren:</p>
<pre><code class="language-cpp">p = &amp;stack;
</code></pre>
<p>Edit: Und zu SIZE habe ich auch noch eine Frage: Ist das ein fester Wert oder steht er hier im Beispiel vielleicht nur für einen belieben Wert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660627</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:29:05 GMT]]></title><description><![CDATA[<p>Ein Array (oder besser gesagt der Name) kann implizit zu einem Zeiger auf den den gehalteten Typen umgewandelt werden.</p>
<p>SIZE muss ein zur Kompilierzeit bekannter wert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660630</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:42:56 GMT]]></title><description><![CDATA[<p>Habe gerade meine Lösung gefunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Mit folgender Aussage macht natürlich alles wieder einen Sinn:</p>
<p>Ein Array-Name ohne einen Index == ein Zeiger auf das erste Element des Arrays</p>
<pre><code class="language-cpp">p == &amp;p[0]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1660645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660645</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:44:22 GMT]]></title><description><![CDATA[<p>mtepe schrieb:</p>
<blockquote>
<p>Ein Array-Name ohne einen Index == ein Zeiger auf das erste Element des Arrays</p>
<pre><code class="language-cpp">p == &amp;p[0]
</code></pre>
</blockquote>
<p>Eben nicht ganz gleich, sondern implizit konvertierbar. Den Unterschied siehst du beispielsweise, wenn du den <code>sizeof</code> -Operator anwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660648</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:45:05 GMT]]></title><description><![CDATA[<p>mtepe schrieb:</p>
<blockquote>
<p>Ein Array-Name ohne einen Index == ein Zeiger auf das erste Element des Arrays</p>
<pre><code class="language-cpp">p == &amp;p[0]
</code></pre>
</blockquote>
<p>Du hast da zweimal die gleiche Variable. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ansonsten wird er nur in einen Zeiger umgewandelt und ist nicht gleich, aber das ist fürs erste vielleicht zu pingelig..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660649</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:45:05 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:53:15 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>mtepe schrieb:</p>
<blockquote>
<p>Ein Array-Name ohne einen Index == ein Zeiger auf das erste Element des Arrays</p>
<pre><code class="language-cpp">p == &amp;p[0]
</code></pre>
</blockquote>
<p>Du hast da zweimal die gleiche Variable. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ansonsten wird er nur in einen Zeiger umgewandelt und ist nicht gleich, aber das ist fürs erste vielleicht zu pingelig..</p>
</blockquote>
<p>Öhm Missverständins ??? oder mein Fehler?</p>
<p>mit</p>
<pre><code class="language-cpp">p == &amp;p[0]
</code></pre>
<p>Wollte ich zum Ausdruck bringen dass p gleich &amp;p[0] ist.(Bzw. p &amp;p[0] entspricht)</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Eben nicht ganz gleich, sondern implizit konvertierbar. Den Unterschied siehst du beispielsweise, wenn du den <code>sizeof</code> -Operator anwendest.</p>
</blockquote>
<p>Hmmm hoffe das es für die Praxis keinen Unterschied da ich zugegebenermaßen noch nicht nachvollziehen kann was <em>implizit konvertierbar</em> meint. Den <code>sizeof</code> -Operator hatte ich bis jetzt noch nicht. Denke aber das wird noch auf mich zukommen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1660654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660654</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 17:57:16 GMT]]></title><description><![CDATA[<p>Es ist eben nicht ganz gleich.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Probier das mal aus, dann siehst du, dass es nicht dasselbe ist:</p>
<pre><code class="language-cpp">int a[2];
int* pa = a; //implizite Umwandlung von einem Array Typen in einen Zeiger Typen

pa++;
a++;
</code></pre>
<p>Implizit heisst nur, dass du dich nicht drum kümmern musst. Eine explizite Umwandlung wäre das hier:</p>
<pre><code class="language-cpp">int* pa = static_cast&lt;int*&gt;(a);
</code></pre>
<p>Was eigentlich das ist, was gemacht wird, nur eben ohne dein zutun.</p>
<p>EDIT:<br />
sizeof gibt dir die statische Grösse eines Typen, welcher bei einem Array ermittelt werden kann und somit die Grösse des Arrays zurückgibt und bei einem Zeiger eben nur die Grösse des Zeigers, was i.d.R 4 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660659</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:01:49 GMT]]></title><description><![CDATA[<p>Der <code>sizeof</code> -Operator gibt die Anzahl Bytes, die ein Objekt im Speicher braucht, an.</p>
<pre><code class="language-cpp">double Array[3];
double* Ptr = Array;
double* Ptr2 = &amp;Array[0];

sizeof(Array);   // das wäre die Grösse des Arrays, also 3 mal die Grösse von double
sizeof(Ptr);     // hier würdest du die Grösse eines Zeigers erhalten, meistens 4 Byte
sizeof(Ptr2);    // ebenfalls sizeof(double*), also meistens 4
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1660664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660664</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:08:14 GMT]]></title><description><![CDATA[<p>Das</p>
<pre><code class="language-cpp">a++
</code></pre>
<p>Verursacht einen Fehler: <strong>error: lvalue required as left operand of assignment</strong></p>
<p>Also noch einmal für mein Verständnis:</p>
<p>Ein Array-Name ohne einen Index enthält enthält die Adresse des Array ist aber kein Zeiger. Kann aber wiederum in der Praxis dazu genutzt werden um einem Zeiger die Adresse des Arrays zuzuweisen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660674</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:12:56 GMT]]></title><description><![CDATA[<p>mtepe schrieb:</p>
<blockquote>
<p>Das</p>
<pre><code class="language-cpp">a++
</code></pre>
<p>Verursacht einen Fehler: <strong>error: lvalue required as left operand of assignment</strong></p>
<p>Also noch einmal für mein Verständnis:</p>
<p>Ein Array-Name ohne einen Index enthält enthält die Adresse des Array ist aber kein Zeiger. Kann aber wiederum in der Praxis dazu genutzt werden um einem Zeiger die Adresse des Arrays zuzuweisen?</p>
</blockquote>
<p>Ja, das kommt so hin. Also du hast dann einen Zeiger auf das erste Element im Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660679</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:15:52 GMT]]></title><description><![CDATA[<p>OK, danke!<br />
Dann kann ich nun im Buche fortschreiten <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1660680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660680</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:24:26 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>mtepe schrieb:</p>
<blockquote>
<p>Ein Array-Name ohne einen Index enthält enthält die Adresse des Array ist aber kein Zeiger. Kann aber wiederum in der Praxis dazu genutzt werden um einem Zeiger die Adresse des Arrays zuzuweisen?</p>
</blockquote>
<p>Ja, das kommt so hin. Also du hast dann einen Zeiger auf das erste Element im Array.</p>
</blockquote>
<p>Da bin ich nicht ganz einverstanden. Es ist zwar ein Detail, aber besser, man lernt es gleich richtig. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Der Array-Name bezeichnet das Array als Objekt an sich. Das hat rein gar nichts mit Adressen oder Zeigern zu tun. Arrays sind eigene Datentypen und in erster Linie meint man mit dem Bezeichner das Array selber und keinen Zeiger.</p>
<pre><code class="language-cpp">int Array[5];
Array; // der Typ dieses Ausdrucks ist int[5], nicht int*
</code></pre>
<p>Erst in gewissen Kontexten, zum Beispiel bei</p>
<pre><code class="language-cpp">int* Ptr = Array;
</code></pre>
<p>wird das Array in einen Zeiger auf den Anfang des Arrays umgewandelt. Damit verliert man beispielsweise auch die Grösseninformation, die man beim Array als Objekt noch hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660687</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Mon, 09 Feb 2009 18:34:08 GMT]]></title><description><![CDATA[<p>Danke für die Mühe, denke der Unterschied ist nun klar. Wenn es auch ein wenig länger gedauert hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660700</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Mon, 09 Feb 2009 18:34:08 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Tue, 10 Feb 2009 09:29:00 GMT]]></title><description><![CDATA[<p>Da wir gerade mal bei Zeigern sind, habe ich noch eine Frage die ich mir immer wieder stelle:</p>
<p>Warum sieht man in den meisten Beispielen folgende Variante der Zeiger-Deklaration:</p>
<pre><code class="language-cpp">int* zeiger
</code></pre>
<p>und nicht</p>
<pre><code class="language-cpp">int *zeiger
</code></pre>
<p>hat das einen praktischen Nutzen oder ist das einfach nur so?</p>
<p>Denn gerade bei mehren Zeigern ist doch die zweite Variante einfacher zu lesen</p>
<pre><code class="language-cpp">int *zeiger1, *zeiger2, keinZeiger
</code></pre>
<p>Dies hingegen hat mich als Anfänger schon erstmal überlegen lassen</p>
<pre><code class="language-cpp">int* zeiger1, zeiger2
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1660943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660943</guid><dc:creator><![CDATA[mtepe]]></dc:creator><pubDate>Tue, 10 Feb 2009 09:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisproblem mit Zeigern on Tue, 10 Feb 2009 11:51:49 GMT]]></title><description><![CDATA[<p>mtepe schrieb:</p>
<blockquote>
<p>hat das einen praktischen Nutzen oder ist das einfach nur so?</p>
</blockquote>
<p>Nein, es ist egal, aber viele Leute denken dass der * eben zum Typ gehört und der Typ also &quot;char*&quot; ist.</p>
<p>es gibt aber auch viele Leute die aus dem selben Grund &quot;char *p&quot; logischer finden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<blockquote>
<p>Dies hingegen hat mich als Anfänger schon erstmal überlegen lassen</p>
<pre><code class="language-cpp">int* zeiger1, zeiger2
</code></pre>
</blockquote>
<p>nur 1 variable auf einmal deklarieren. dann spart man sich solche verwirrungen komplett.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660996</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 10 Feb 2009 11:51:49 GMT</pubDate></item></channel></rss>