<?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[Frage zu den zeigern]]></title><description><![CDATA[<p>Hallo ich habe ein frage zu den zeigern: Was bedeutet &quot;referenzieren&quot; und &quot;dereferenzieren&quot; bzw. wieso schreibt man beim ersten</p>
<pre><code class="language-cpp">int *ap;
    ap=a;
</code></pre>
<p>also in der zweiten zeile ohne *</p>
<p>und beim zweiteren</p>
<pre><code class="language-cpp">*ap = ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/306108/frage-zu-den-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 10:05:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306108.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Jul 2012 11:18:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:18:19 GMT]]></title><description><![CDATA[<p>Hallo ich habe ein frage zu den zeigern: Was bedeutet &quot;referenzieren&quot; und &quot;dereferenzieren&quot; bzw. wieso schreibt man beim ersten</p>
<pre><code class="language-cpp">int *ap;
    ap=a;
</code></pre>
<p>also in der zweiten zeile ohne *</p>
<p>und beim zweiteren</p>
<pre><code class="language-cpp">*ap = ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2233709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233709</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:25:05 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int* p = q; // Hier weißt du dem Zeiger selbst etwas zu, trotz *
p = q; // Genau so wie hier
*p; // Hier dereferenzierst du den Zeiger.
*p = 3; // Hier weißt du der Variable auf die der Zeiger zeigt etwas zu
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2233711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233711</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:26:04 GMT]]></title><description><![CDATA[<p><code>*zeiger</code> ist das, worauf der Zeiger zeigt.</p>
<pre><code class="language-cpp">int a;
int *b;

b = &amp;a; // b zeigt auf a

*b = 2;  // hier wird a verändert.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2233713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233713</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:27:36 GMT]]></title><description><![CDATA[<p>Das hängt davon ab, was du bei dem Zeiger ändern willst.</p>
<p>Die Adresse wohin er zeigt, wird ohne dem * angesprochen.<br />
Den Wert an der Adresse wo der Zeiger hinzeigt wird mit dem * angesprochen.<br />
Die Adresse einer Variablen bekommst u mit dem Adressoperator &amp;.</p>
<pre><code class="language-cpp">int *ap *bp, i, j;
    ap = &amp;i;	// ap zeigt auf i. 

    *ap = 5;     //  Da ap auf i zeigt, wird i verändert 
    bp = ap;    // ap zeigt auf die selbe Adresse wie ap

    ap = &amp;j;	// ap zeigt auf j. 
    *ap = 6;	//  Da ap auf j zeigt, wird j verändert 
    *bp = 7;	//  Da bp auf i zeigt, wird i verändert
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2233714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233714</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:39:46 GMT]]></title><description><![CDATA[<p>Danke für die Antworten, also wäre diese zeile</p>
<pre><code class="language-cpp">int* p = q; // Hier weißt du dem Zeiger selbst etwas zu, trotz *
</code></pre>
<p>schon eine Referenzierung ? Außerdem habe ich eine andere frage, darf man einm double zeiger auf eine integervariable zeigen lassen und umgekehrt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233716</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:51:31 GMT]]></title><description><![CDATA[<p>Nein, das ist keine Referenzierung, sondern eine Zuweisung. Du weist der Zeigervariable <code>p</code> den Wert der Zeigervariable <code>q</code> zu, damit zeigen <code>p</code> und <code>q</code> auf die gleiche Adresse.<br />
Grundsätzlich darf man alles auf alles zeigen lassen, wie sich das Ganze dann aber beim Zugriff verhält ist nicht definiert. Hängt vom Anwendungsfall ab, manchmal ist es erwünscht, manchmal nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233720</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 11:54:36 GMT]]></title><description><![CDATA[<p>Namal schrieb:</p>
<blockquote>
<p>Danke für die Antworten, also wäre diese zeile</p>
<pre><code class="language-cpp">int* p = q; // Hier weißt du dem Zeiger selbst etwas zu, trotz *
</code></pre>
<p>schon eine Referenzierung ?</p>
</blockquote>
<p>Hier passiert das gleiche, als wenn du</p>
<pre><code class="language-cpp">int a = 5;
</code></pre>
<p>schreibst. Es wird eine Variable p vom Typ int* definiert, die mit dem Wert q initialisiert wird (q muss daher auch schon ein int* sein). Das Sternchen ist in diesem Zusammenhang keine Dereferenzierung, sondern sagt, dass p ein Zeigertyp sein soll.</p>
<p>(Achtung, häufiger Fehler:</p>
<pre><code class="language-cpp">int* a,b,*c;
</code></pre>
<p>Hier ist a ein Zeiger auf int, b ein int, c ein Zeiger auf int. Das Sternchen gehört nicht zum Typen, sondern zum Variablennamen, auch wenn es den Typen der Variable ändert. Daher schreibt man oft</p>
<pre><code class="language-cpp">int *a, b, *c;
</code></pre>
<p>oder lässt mehrere Definitionen in einer Zeile besser gleich sein, wenn dies verwirrend sein könnte)</p>
<blockquote>
<p>Außerdem habe ich eine andere frage, darf man einm double zeiger auf eine integervariable zeigen lassen und umgekehrt?</p>
</blockquote>
<p>Jain. Du darfst nicht. Aber du kannst es durch reinterpret_casts trotzdem so hinbiegen. Es wird auch nicht das passieren, was du vielleicht denkst. Es wird einfach Mist rauskommen, sofern du nicht die genauen technischen Hintergründe kennst.</p>
<p>Normalerweise darf ein Zeiger nur auf spezialisiertere Typen zeigen (oder solche mit lascheren Qualifizierern):</p>
<pre><code class="language-cpp">class base{}; class derived: public base {};

int variable;
const int konstante;

int *a;
a = &amp;variable; // ok
a = &amp;konstante; // nicht ok

const int *b;
b = &amp;variable; // ok
b = &amp;konstante; // ok

base basis;
derived abgeleitet;

base *c;
c = &amp;basis; // ok
c = &amp;abgeleitet; // ok, abgeleitet ist ein base

derived *d;
d = &amp;basis; // nicht ok, ein base ist nicht unbedingt ein derived
d = &amp;abgeleitet; // ok
</code></pre>
<p>Ich hoffe übrigens mal, dass du schon C++ kannst und nun aus Not oder Interesse die Zeiger lernst. Dies sollte nämlich nicht unbedingt der normale Grundstoff für C++ sein, da es in C++ oft wesentlich bessere Lösungen als Zeiger gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233722</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:54:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 12:16:07 GMT]]></title><description><![CDATA[<p>[quote=&quot;SeppJ&quot;]Also wird mit</p>
<pre><code class="language-cpp">int* p = q;
</code></pre>
<p>Eine zeigervariable zugewiesen, das heißt dann *p zeigt auf dieselbe variable wie *q, richtig?</p>
<p>und irgendwo muss ich dann noch festlegen worauf *q zeigt und das mache ich mit dem referenzieren</p>
<pre><code class="language-cpp">q=&amp;a;
</code></pre>
<p>Ok ich les mir erstmal das durch</p>
<p><a href="http://www.cplusplus.com/doc/tutorial/pointers/" rel="nofollow">http://www.cplusplus.com/doc/tutorial/pointers/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233727</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Wed, 18 Jul 2012 12:16:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 12:39:59 GMT]]></title><description><![CDATA[<p>Nicht ganz</p>
<p>*p bzw *q sind Werte, in diesem Fall vom Typ int.<br />
p und q sind die Zeiger.</p>
<p>p Zeigt auf den selben Wert wie q.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233741</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 18 Jul 2012 12:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 12:42:27 GMT]]></title><description><![CDATA[<p>[quote=&quot;Namal&quot;]</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Also wird mit</p>
<pre><code class="language-cpp">int* p = q;
</code></pre>
<p>Eine zeigervariable zugewiesen, das heißt dann *p zeigt auf dieselbe variable wie *q, richtig?</p>
</blockquote>
<p>Jo. Prinzipiell ist das eine normale Initialisierung, deswegen ist das für dich möglicherweise etwas verwirrend; stell es dir so vor:</p>
<p>[TYP] [IDENTIFIER] = [WERT];</p>
<p>Hier ist TYP <code>int*</code> , IDENTIFIER ist <code>p</code> und WERT ist <code>q</code> (s Wert :D). Das nennt sich copy-initialisation.</p>
<p>P.S.: Ich würde übrigens nicht <code>*q</code> und <code>*p</code> schreiben, genau genommen müssen die Sternchen da weg <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>DirkB schrieb:</p>
<blockquote>
<p>p Zeigt auf den selben Wert wie q.</p>
</blockquote>
<p>Eine ziemlich lustige Erklärung. Du meinst, <code>q</code> zeigt auf dieselbe Variable <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/2233743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233743</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 18 Jul 2012 12:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den zeigern on Wed, 18 Jul 2012 12:42:08 GMT]]></title><description><![CDATA[<p>Namal schrieb:</p>
<blockquote>
<p>und irgendwo muss ich dann noch festlegen worauf *q zeigt</p>
</blockquote>
<p>Nicht irgendwo, sondern irgendwo <strong>vorher</strong>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233744</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Jul 2012 12:42:08 GMT</pubDate></item></channel></rss>