<?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[Zeiger verstehen]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>Da ich noch ein Neuling in Sachen CPP bin, beschloss ich, das Kapitel &quot;Zeiger&quot; in Volkard's CPP-Kurs durchzulesen. Eine Aufgabe davon war, ein Programm zu kommentieren, welches mit Zeigern arbeitet:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
using std::cout;
using std::endl;

int main() 
{ 
   int a=5;// a wird 5 zugewiesen
   cout&lt;&lt;a&lt;&lt;endl;// ausgabe: 5
   int *pa=&amp;a;// zeiger *pa initialisieren und adresse von a an *pa zuweisen
   *pa=6;// wert vom zeiger *pa (also a) in 6 ändern
   cout&lt;&lt;a&lt;&lt;endl;// ausgabe: 6, weil der wert von a in der vorherigen anweisung von 5 auf 6 geändert wurde
   a=7;// a wird 7 zugewiesen
   cout&lt;&lt;*pa&lt;&lt;endl;// wert vom zeiger *pa auslesen. ausgabe: 7
   int b=8;// b wird 8 zugewiesen
   int *pb=pa;// zeiger *pb initialisieren und wert (adresse) vom zeiger *pa, welcher wiederum die adresse der variablen a ist, an *pb zuweisen
   cout&lt;&lt;*pb&lt;&lt;endl;// ausgabe: 7
   int **ppa=&amp;pa;// adresse des zeigers *pa dem &quot;zeiger auf zeiger&quot; **ppa zuweisen
   cout &lt;&lt;**ppa&lt;&lt;endl;// ausgabe: 7, weil hier 2 verweisoperatoren verwendet werden, wird der wert von a ausgegeben. *ppa wäre hier gleich &amp;a bzw. pa
   ppa=&amp;pb;// adresse vom zeiger *pb dem &quot;zeiger auf zeiger&quot; **ppa zuweisen
   cout&lt;&lt;**ppa&lt;&lt;endl;// ausgabe: 7, weil hier 2 verweisoperatoren verwendet werden, 
                     // wird der wert von a ausgegeben. einziger unterschied zur vorletzten anweisung: *ppa wäre hier gleich &amp;a bzw. &gt;&gt;pb&lt;&lt;
   pb=&amp;b;// pb zeigt jetzt auf b(8)
   cout&lt;&lt;**ppa&lt;&lt;endl;// dadurch, dass die adresse vom zeiger *pb an den &quot;zeiger auf zeiger&quot; 
                     // **ppa übergeben wurde und pb danach die adresse von b(8) zugewiesen bekam, wird 8 ausgegeben
   std::cin.get();
}
</code></pre>
<p>Nun meine Frage: Habe ich da etwas falsch verstanden?</p>
<p>Bedanke mich für jedwede Hilfe im Voraus.</p>
<p><strong>Quelle:</strong> <a href="http://ittk.falb.at/pt/unterlagen/vcppk/zeiger.html" rel="nofollow">http://ittk.falb.at/pt/unterlagen/vcppk/zeiger.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245742/zeiger-verstehen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 13:08:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245742.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Jul 2009 02:59:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger verstehen on Sat, 18 Jul 2009 02:59:42 GMT]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>Da ich noch ein Neuling in Sachen CPP bin, beschloss ich, das Kapitel &quot;Zeiger&quot; in Volkard's CPP-Kurs durchzulesen. Eine Aufgabe davon war, ein Programm zu kommentieren, welches mit Zeigern arbeitet:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
using std::cout;
using std::endl;

int main() 
{ 
   int a=5;// a wird 5 zugewiesen
   cout&lt;&lt;a&lt;&lt;endl;// ausgabe: 5
   int *pa=&amp;a;// zeiger *pa initialisieren und adresse von a an *pa zuweisen
   *pa=6;// wert vom zeiger *pa (also a) in 6 ändern
   cout&lt;&lt;a&lt;&lt;endl;// ausgabe: 6, weil der wert von a in der vorherigen anweisung von 5 auf 6 geändert wurde
   a=7;// a wird 7 zugewiesen
   cout&lt;&lt;*pa&lt;&lt;endl;// wert vom zeiger *pa auslesen. ausgabe: 7
   int b=8;// b wird 8 zugewiesen
   int *pb=pa;// zeiger *pb initialisieren und wert (adresse) vom zeiger *pa, welcher wiederum die adresse der variablen a ist, an *pb zuweisen
   cout&lt;&lt;*pb&lt;&lt;endl;// ausgabe: 7
   int **ppa=&amp;pa;// adresse des zeigers *pa dem &quot;zeiger auf zeiger&quot; **ppa zuweisen
   cout &lt;&lt;**ppa&lt;&lt;endl;// ausgabe: 7, weil hier 2 verweisoperatoren verwendet werden, wird der wert von a ausgegeben. *ppa wäre hier gleich &amp;a bzw. pa
   ppa=&amp;pb;// adresse vom zeiger *pb dem &quot;zeiger auf zeiger&quot; **ppa zuweisen
   cout&lt;&lt;**ppa&lt;&lt;endl;// ausgabe: 7, weil hier 2 verweisoperatoren verwendet werden, 
                     // wird der wert von a ausgegeben. einziger unterschied zur vorletzten anweisung: *ppa wäre hier gleich &amp;a bzw. &gt;&gt;pb&lt;&lt;
   pb=&amp;b;// pb zeigt jetzt auf b(8)
   cout&lt;&lt;**ppa&lt;&lt;endl;// dadurch, dass die adresse vom zeiger *pb an den &quot;zeiger auf zeiger&quot; 
                     // **ppa übergeben wurde und pb danach die adresse von b(8) zugewiesen bekam, wird 8 ausgegeben
   std::cin.get();
}
</code></pre>
<p>Nun meine Frage: Habe ich da etwas falsch verstanden?</p>
<p>Bedanke mich für jedwede Hilfe im Voraus.</p>
<p><strong>Quelle:</strong> <a href="http://ittk.falb.at/pt/unterlagen/vcppk/zeiger.html" rel="nofollow">http://ittk.falb.at/pt/unterlagen/vcppk/zeiger.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745132</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sat, 18 Jul 2009 02:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger verstehen on Sat, 18 Jul 2009 06:07:02 GMT]]></title><description><![CDATA[<p>Es sieht richtig aus. Du hast nur eine komische Art Zeiger zu benennen.</p>
<pre><code>int a = 2;
int *pa = &amp;a; // [i]*pa[/i] ist [i]kein[/i] Zeiger, [i]pa[/i] ist ein Zeiger
</code></pre>
<p>In der zweiten Zeile wird pa initialisiert, nicht *pa. In der Hnisicht ist die Syntax einer solchen Initialisierung leicht inkonsistent. Die linke Seite sagt: &quot;*pa ist ein int&quot;, die rechte Seite bezieht sich aber nur auf pa.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745140</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 18 Jul 2009 06:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger verstehen on Sat, 18 Jul 2009 13:12:24 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<pre><code>int *pa = &amp;a; // [i]*pa[/i] ist [i]kein[/i] Zeiger, [i]pa[/i] ist ein Zeiger
</code></pre>
<p>In der zweiten Zeile wird pa initialisiert, nicht *pa. In der Hnisicht ist die Syntax einer solchen Initialisierung leicht inkonsistent. Die linke Seite sagt: &quot;*pa ist ein int&quot;</p>
</blockquote>
<p>Ich würde sagen: Die linke Seite sagt:<br />
&quot;pa ist ein int*&quot; - und dann ist es auch wieder konsistent. 'pa' ist ja der Bezeichner, der angelegt und initialisiert ist, nicht '*pa'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745301</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 18 Jul 2009 13:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger verstehen on Sat, 18 Jul 2009 19:03:14 GMT]]></title><description><![CDATA[<p>@ Belli: In seinem Code steht aber</p>
<pre><code class="language-cpp">int *pa=&amp;a;// zeiger *pa initialisieren und adresse von a an *pa zuweisen
</code></pre>
<p>Was nicht stimmt. Weder ist <code>*pa</code> ein Zeiger, noch wird die Adresse an <code>*pa</code> zugewiesen.</p>
<p>Ich halte übrigens auch nicht viel davon, den Stern an den Bezeichner zu hängen, weil er für mich zum Typ gehört. Und gerade vorweg, Zeiger-Mehrfachdeklarationen habe ich nie, sodass das für mich kein Problem darstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745472</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 18 Jul 2009 19:03:14 GMT</pubDate></item></channel></rss>