<?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]]></title><description><![CDATA[<p>hallo</p>
<p>kann mir jemand bitte erklaeren wozu man Zeiger und Referenzen braucht?<br />
Ich kenne nur solche Beispiele und hab noch nie wirklich einen gebraucht:</p>
<pre><code class="language-cpp">//Zeiger:
int *foo;
int bar = 50;
foo = &amp;bar;
</code></pre>
<p>und</p>
<pre><code class="language-cpp">//Referenz:
int foo = 15;
int &amp;bar = foo;
</code></pre>
<p>... aber was wuerde das eigentlich wirklich bringen?<br />
Bei Referenzen &amp; Zeigern kenne ich mich zwar aus, habe es aber bei meinen Konsolenprojekten noch nie verwendet, nur bei einigen Uebungen.<br />
Das einzige was ich bei den Referenzen benutze ist folgendes:</p>
<pre><code class="language-cpp">void swap(int eins, int zwei)
{
std::cout&lt;&lt;&quot;Vorher: &quot;&lt;&lt;eins&lt;&lt;&quot; &quot;&lt;&lt;zwei&lt;&lt;std::endl;
int tmp = eins;
eins = zwei;
zwei = tmp;
std::cout&lt;&lt;&quot;Nachher: &quot;&lt;&lt;eins&lt;&lt;&quot; &quot;&lt;&lt;zwei&lt;&lt;std::endl;
}
</code></pre>
<p>Ich bitte euch nur darum mir ein bisschen zu erklaeren wie das mit den Zeigern &amp; Referenzen zu verstehen ist.</p>
<p>Mit freundlichen Gruessen - Roland</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186580/zeiger</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:41:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186580.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jul 2007 13:17:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:17:36 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>kann mir jemand bitte erklaeren wozu man Zeiger und Referenzen braucht?<br />
Ich kenne nur solche Beispiele und hab noch nie wirklich einen gebraucht:</p>
<pre><code class="language-cpp">//Zeiger:
int *foo;
int bar = 50;
foo = &amp;bar;
</code></pre>
<p>und</p>
<pre><code class="language-cpp">//Referenz:
int foo = 15;
int &amp;bar = foo;
</code></pre>
<p>... aber was wuerde das eigentlich wirklich bringen?<br />
Bei Referenzen &amp; Zeigern kenne ich mich zwar aus, habe es aber bei meinen Konsolenprojekten noch nie verwendet, nur bei einigen Uebungen.<br />
Das einzige was ich bei den Referenzen benutze ist folgendes:</p>
<pre><code class="language-cpp">void swap(int eins, int zwei)
{
std::cout&lt;&lt;&quot;Vorher: &quot;&lt;&lt;eins&lt;&lt;&quot; &quot;&lt;&lt;zwei&lt;&lt;std::endl;
int tmp = eins;
eins = zwei;
zwei = tmp;
std::cout&lt;&lt;&quot;Nachher: &quot;&lt;&lt;eins&lt;&lt;&quot; &quot;&lt;&lt;zwei&lt;&lt;std::endl;
}
</code></pre>
<p>Ich bitte euch nur darum mir ein bisschen zu erklaeren wie das mit den Zeigern &amp; Referenzen zu verstehen ist.</p>
<p>Mit freundlichen Gruessen - Roland</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322285</guid><dc:creator><![CDATA[&amp;lt;wWw&amp;gt;]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:20:43 GMT]]></title><description><![CDATA[<p>wenn du z.b. eine struktur beim funktionsaufruf übergeben willst kannst du nur einen zeiger darauf übergeben, dann wird nicht der inhalt kopiert.</p>
<p>oder um n größeres stück speicher zu alokieren<br />
...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322287</guid><dc:creator><![CDATA[wertew]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:27:23 GMT]]></title><description><![CDATA[<p>Zeiger enthalten eine Adresse, die irgendwo im Speicher liegen kann - das kann zum Beispiel nützlich sein, um größere Datenmengen verwalten zu können:</p>
<pre><code class="language-cpp">int* ptr = new int[100];
//ptr verweist jetzt auf einen Speicherblock, der Platz für 100 int-Werte aufnehmen kann
//im Gegensatz zu einem Array kann die Größe auch während der Laufzeit festgelegt werden
</code></pre>
<p>Außerdem werden sie in C anstelle von Referenzen verwendet (siehe unten). Für ausführlichere Erklärungen empfehle ich GPC's Artikel <a href="http://c-plusplus.net/forum/viewtopic-var-t-is-124532.html" rel="nofollow">Pointer in C(++)</a>.</p>
<p>Referenzen definieren eine Alias-Bezeichnung für eine bestehende Variable. Und ihr häufigster Zweck ist für Funktionen wie das angegebene swap() - um eine Möglichkeit zu haben, die übergebenen Funktionsargumente ändern zu können.<br />
(deine Version von swap() vertauscht zwar in der Funktion die Variablen-Inhalte - aber davon bekommt das aufrufende Programm nichts mit)</p>
<p>Außerdem kann man Referenzen und Zeiger auch verwenden, wenn man polymorphe Datentypen verwenden will (dann stimmt der Typ der Referenz nicht mehr mit dem überein, was sie referenziert) - oder wenn Objekte so groß werden, daß man sie nicht mehr kopieren kann (oder will).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322294</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:42:18 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>also wenn ich zbsp.</p>
<pre><code class="language-cpp">int foo = 200;
int *bar = &amp;foo;
</code></pre>
<p>schreibe und dann noch</p>
<pre><code class="language-cpp">*bar = 150;
</code></pre>
<p>schreibe, was wuerde dann passieren?<br />
wuerde foo zu 150 oder bar alleine zu 150 werden, was ich glaube,dass es nicht moeglich waere bar (ohne <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="😉"
    /> einen Wert zuzuweisen.</p>
<p>und was waere wenn ich statt dem oberen code nur</p>
<pre><code class="language-cpp">bar = 150;
</code></pre>
<p>hinschreiben wuerde?</p>
<p>Mit freundlichen Gruessen - Roland<br />
P.S.: sorry, ich bin zurzeit in einem anderem land in einem hotel und hab keinen compiler und darf nichts installieren <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1322317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322317</guid><dc:creator><![CDATA[&amp;lt;wWw&amp;gt;]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:45:17 GMT]]></title><description><![CDATA[<p>&lt;wWw&gt; schrieb:</p>
<blockquote>
<p>hallo</p>
<p>also wenn ich zbsp.</p>
<pre><code class="language-cpp">int foo = 200;
int *bar = &amp;foo;
</code></pre>
<p>schreibe und dann noch</p>
<pre><code class="language-cpp">*bar = 150;
</code></pre>
<p>schreibe, was wuerde dann passieren?<br />
wuerde foo zu 150 oder bar alleine zu 150 werden, was ich glaube,dass es nicht moeglich waere bar (ohne <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="😉"
    /> einen Wert zuzuweisen.</p>
</blockquote>
<p>bar enthält die Adresse von foo - mit dem Dereferenzierungsoperator (*) greifst du auf das Objekt zu, auf das ein Pointer zeigt. Also im Endeffekt änderst du damit den Inhalt von foo.</p>
<blockquote>
<p>und was waere wenn ich statt dem oberen code nur</p>
<pre><code class="language-cpp">bar = 150;
</code></pre>
<p>hinschreiben wuerde?</p>
</blockquote>
<p>Da würde dich dein Compiler höflich darauf aufmerksam machen, daß er einen int nicht an einen int* zuweisen kann <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/1322321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322321</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:45:17 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 10 Jul 2007 13:55:50 GMT]]></title><description><![CDATA[<p>ok danke vielmals, CStoll <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>Hat echt viel geholfen!<br />
DANKE <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/1322339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322339</guid><dc:creator><![CDATA[&amp;lt;wWw&amp;gt;]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:55:50 GMT</pubDate></item></channel></rss>