<?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[C++ Zeiger]]></title><description><![CDATA[<p>Hey, ich bin ja kein Anfänger in C++ mehr, aber eines habe ich noch nie kapiert: Zeiger..<br />
In Irrlicht brauch ich das ja anscheinend:</p>
<pre><code>IrrlichtDevice *device =
#ifdef _IRR_OSX_PLATFORM_
		createDevice( video::EDT_OPENGL, dimension2d&lt;s32&gt;(640, 480), 16,
			false, false, false, 0);
#else
		createDevice( video::EDT_SOFTWARE, dimension2d&lt;s32&gt;(640, 480), 16,
			false, false, false, 0);
#endif
	if (!device)
		return 1;
</code></pre>
<p>Aber was machen Zeiger jetzt genau? Im Internet gibt es zwar haufenweise Tuts, aber alle in so einer Fachsprache, dass ich das nicht versteh.. Haben Zeiger einfach nur den gleichen Inhalt, als die Variable auf die sie zeigen?<br />
Hier bei Irrlicht muss die Zeigervariable ja 1 betragen, aber warum?</p>
<p>Kann mir einer von euch in normalen Worten ausdrücken was eine Zeigervariable macht und wie man sie Anwendet?<br />
Danke schon mal im Voraus,<br />
mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245177/c-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 19:26:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245177.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jul 2009 15:34:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 15:35:09 GMT]]></title><description><![CDATA[<p>Hey, ich bin ja kein Anfänger in C++ mehr, aber eines habe ich noch nie kapiert: Zeiger..<br />
In Irrlicht brauch ich das ja anscheinend:</p>
<pre><code>IrrlichtDevice *device =
#ifdef _IRR_OSX_PLATFORM_
		createDevice( video::EDT_OPENGL, dimension2d&lt;s32&gt;(640, 480), 16,
			false, false, false, 0);
#else
		createDevice( video::EDT_SOFTWARE, dimension2d&lt;s32&gt;(640, 480), 16,
			false, false, false, 0);
#endif
	if (!device)
		return 1;
</code></pre>
<p>Aber was machen Zeiger jetzt genau? Im Internet gibt es zwar haufenweise Tuts, aber alle in so einer Fachsprache, dass ich das nicht versteh.. Haben Zeiger einfach nur den gleichen Inhalt, als die Variable auf die sie zeigen?<br />
Hier bei Irrlicht muss die Zeigervariable ja 1 betragen, aber warum?</p>
<p>Kann mir einer von euch in normalen Worten ausdrücken was eine Zeigervariable macht und wie man sie Anwendet?<br />
Danke schon mal im Voraus,<br />
mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740498</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Fri, 10 Jul 2009 15:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:01:31 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Hier bei Irrlicht muss die Zeigervariable ja 1 betragen, aber warum?</p>
</blockquote>
<p>Nein, es wird geprüft, ob der Zeiger ein Nullzeiger ist, danach wird 1 zurückgegeben. Denn <code>operator !</code> angewendet auf einen Nullzeiger gibt 1. <code>operator !</code> angewendet auf irgendeine Zahl ausser 0, gibt 0.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Kann mir einer von euch in normalen Worten ausdrücken was eine Zeigervariable macht und wie man sie Anwendet?</p>
</blockquote>
<p>Das sind aber absolute Anfänger Grundlagen <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="😉"
    /><br />
Ein Zeiger ist grundsätzlich nichts anderes, als eine Speicheradresse eines Objektes eines bestimmten Types. Punkt.<br />
In der Zeigervariable wird somit die Adresse des Objektes gespeichert.<br />
Beim Dereferenzieren wird auf das Objekt an der entsprechenden Adresse zugegriffen.</p>
<p>Sonstige Fragen zu Zeiger?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740515</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:02:32 GMT]]></title><description><![CDATA[<p>Ein Zeiger speichert die Adresse einer Variable!</p>
<pre><code class="language-cpp">int variable = 3;        //Initialisierung einer Variable...
int* zeiger = &amp;variable; //Einen Zeiger definieren der auf die Adresse von &quot;variable&quot; zeigt...

*zeiger = 5;            //Mit dem *-Operator beziehen wir uns jetzt auf das Objekt, auf das gezeigt wird...
// und ändern die Variable &quot;variable&quot; in 5...
</code></pre>
<p>Zeiger spielen aber eine wichtige Rolle bei Funktionen. Da sie dort den übergebenen Wert ändern können.</p>
<p>Hoffe ich konnte dir es einiger Maßen erklären!</p>
<p>Lg Mentras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740518</guid><dc:creator><![CDATA[Mentras]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:07:39 GMT]]></title><description><![CDATA[<p>Du möchtest es anschaulich haben. Kannst Du kriegen!<br />
Stelle Dir einen Schrank mit drei Schubladen vor, in denen sich folgende Dinge befinden: Oben - Pullover / Mitte - Hosen / Unten - Socken. Die Imhalte der Schubladen sind die Variable. Ein Zeiger zeigt auf die Schublade, in der sich etwas konkretes befindet. Hat der Zeiger den Wert Oben findest Du in der gezeigten Schublade die Pullover. Verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740523</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:10:16 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Hey, ich bin ja kein Anfänger in C++ mehr, aber eines habe ich noch nie kapiert: Zeiger..</p>
</blockquote>
<p>Das meinst du nicht ernst oder? <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="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740527</guid><dc:creator><![CDATA[Teufelsbraten]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:10:16 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:20:36 GMT]]></title><description><![CDATA[<p>Teufelsbraten schrieb:</p>
<blockquote>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Hey, ich bin ja kein Anfänger in C++ mehr, aber eines habe ich noch nie kapiert: Zeiger..</p>
</blockquote>
<p>Das meinst du nicht ernst oder? <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="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Nur weil du´s verstanden hast, musst du nicht auf andere runtergucken und eine blöde Bemerkung abliefern. Das Kapitel Zeiger ist etwas komplex. Die meisten Neulinge stellen sich die Frage wozu es die überhaupt gibt.</p>
<p>Ein gutes Beispiel und schon verstehen sie es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740531</guid><dc:creator><![CDATA[Mentras]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 16:55:45 GMT]]></title><description><![CDATA[<p>Mentras schrieb:</p>
<blockquote>
<p>Zeiger spielen aber eine wichtige Rolle bei Funktionen. Da sie dort den übergebenen Wert ändern können.</p>
</blockquote>
<p>Als Ergänzung: das nennt man dann call-by-reference, im Gegensatz zur reinen Wert- bzw. Kopie-Übergabe call-by-value (nach diesen Stichwörtern lässt sich ggf. besser suchen). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>EDIT: Und zum Thema Zeiger haben wir hier doch was Schönes zum Lesen:</p>
<p><a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C(PlusPlus)" rel="nofollow">http://magazin.c-plusplus.net/artikel/Pointer in C(PlusPlus)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740544</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 10 Jul 2009 16:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 17:34:15 GMT]]></title><description><![CDATA[<p>Mentras schrieb:</p>
<blockquote>
<p>Zeiger spielen aber eine wichtige Rolle bei Funktionen. Da sie dort den übergebenen Wert ändern können.</p>
</blockquote>
<p>Naja, bei Funktionsübergaben können Zeiger oft durch Referenzen ersetzt werden. Ein meiner Ansicht nach wichtigerer Anwendungsbereich ist die manuelle Speicherverwaltung über <code>new</code> und <code>delete</code> . Auch Polymorphie erfordert oft Zeiger. Oder simple Verweise, die ungültig sein können oder sich während der Lebenszeit ändern. Oder...</p>
<p>Mentras schrieb:</p>
<blockquote>
<p>Nur weil du´s verstanden hast, musst du nicht auf andere runtergucken und eine blöde Bemerkung abliefern. Das Kapitel Zeiger ist etwas komplex. Die meisten Neulinge stellen sich die Frage wozu es die überhaupt gibt.</p>
</blockquote>
<p>Eben, Neulinge. <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/1740567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740567</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Jul 2009 17:34:15 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 17:58:54 GMT]]></title><description><![CDATA[<p>Hey, danke für eure Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /><br />
Das mit den Zeigern hab ich jetzt verstanden aber das:</p>
<blockquote>
<blockquote>
<p>Hier bei Irrlicht muss die Zeigervariable ja 1 betragen, aber warum?</p>
</blockquote>
<p>Nein, es wird geprüft, ob der Zeiger ein Nullzeiger ist, danach wird 1 zurückgegeben. Denn operator ! angewendet auf einen Nullzeiger gibt 1. operator ! angewendet auf irgendeine Zahl ausser 0, gibt 0.</p>
</blockquote>
<p>.. noch nicht ganz.<br />
Als Beispiel:</p>
<pre><code>IrrlichtDevice *device =createDevice(video::EDT_SOFTWARE,dimension2d&lt;s32&gt;(640, 480), 16,false, false, false, 0);
</code></pre>
<p>Hier ist ja *device die Zeigervariable. Da sie aber auf CreateDevice() zeigt, ist es kein Nullzeiger oder?<br />
Wenn der Befehl (createDevice()) aber nicht ausgeführt werden konnte, dann wird 0 zurückgegeben, und daher ist die variable ein Nullzeiger, richtig?<br />
Und durch...</p>
<pre><code>if (!device)
		return 1;
</code></pre>
<p>...wird dann geprüft ob device 0 ist. Bitte korrigiert mich wenn ich das falsch verstanden habe. Btw. warum ist im letzten code der if() Befehl ohne {} Klammern?</p>
<p>Und dann noch ne Kleinigkeit..</p>
<pre><code>int* zeiger = &amp;variable; //Einen Zeiger definieren der auf die Adresse von &quot;variable&quot; zeigt...
</code></pre>
<p>Warum ist vor &quot;variable&quot; so ein &amp; Zeichen?</p>
<p>mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740590</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Fri, 10 Jul 2009 17:58:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 18:03:03 GMT]]></title><description><![CDATA[<p>[quote=&quot;Schoasch&quot;]Hey, danke für eure Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /><br />
Das mit den Zeigern hab ich jetzt verstanden aber das:</p>
<blockquote>
<blockquote>
<p>Hier bei Irrlicht muss die Zeigervariable ja 1 betragen, aber warum?</p>
</blockquote>
<p>Und dann noch ne Kleinigkeit..</p>
<pre><code>int* zeiger = &amp;variable; //Einen Zeiger definieren der auf die Adresse von &quot;variable&quot; zeigt...
</code></pre>
<p>Warum ist vor &quot;variable&quot; so ein &amp; Zeichen?</p>
<p>mfg<br />
Schoasch</p>
</blockquote>
<p>Das ist der &amp;-Adressoperator, also die Speicheradresse...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740592</guid><dc:creator><![CDATA[Mentras]]></dc:creator><pubDate>Fri, 10 Jul 2009 18:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 18:12:48 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21782">@Schoasch</a>,<br />
Ehm, ich dachte du seist kein Anfänger? Weisst aber nicht was Zeiger sind, Adressoperator, Funktionen oder eine <code>if</code> Anweisung ohne geschweifte Klammern. Tut mir Leid, wenn ich da ein wenig schmunzeln muss und das Lachen nur knapp unterdrücken kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Also ist wirklich nicht böse gemeint, aber damit bist du in meinen Augen definitiv immer noch ein Anfänger <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>Schoasch schrieb:</p>
<blockquote>
<pre><code>IrrlichtDevice *device =createDevice(video::EDT_SOFTWARE,dimension2d&lt;s32&gt;(640, 480), 16,false, false, false, 0);
</code></pre>
<p>Hier ist ja *device die Zeigervariable. Da sie aber auf CreateDevice() zeigt, ist es kein Nullzeiger oder?</p>
</blockquote>
<p>Nein, createDevice ist eine Funktion, welche einen Zeiger auf ein IrrlichtDevice Objekt zurückgibt. <code>device</code> ist somit ein Zeiger auf ein IrrlichtDevice Objekt.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Wenn der Befehl (createDevice()) aber nicht ausgeführt werden konnte, dann wird 0 zurückgegeben, und daher ist die variable ein Nullzeiger, richtig?</p>
</blockquote>
<p>Auch wieder falsch. Es geht wahrscheinlich darum, wenn die Funktion das IrrlichtDevice Objekt nicht erstellen konnte, dann wird ein Nullzeiger zurückgegeben. Das ist also ein Fehlerfall. Die Funktion wird immer ausgeführt.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Und durch...</p>
<pre><code>if (!device)
		return 1;
</code></pre>
<p>...wird dann geprüft ob device 0 ist.</p>
</blockquote>
<p>Das ist richtig. Wobei ich nicht 0 sagen würde, sondern Nullzeiger. Ist einfach klarer, was man meint <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>Schoasch schrieb:</p>
<blockquote>
<p>Btw. warum ist im letzten code der if() Befehl ohne {} Klammern?</p>
</blockquote>
<p>Weil dies möglich ist, da die Anweisung bis zum nächsten Semikolon gilt. Ein wenig anschaulicher dargestellt:</p>
<pre><code class="language-cpp">if(!device) return 1;
</code></pre>
<p>Nur wenn man einen Block an Befehlen ausführen lassen will, braucht man geschweifte Klammern. Allerdings nehme ich sogar für eine einzelne Anweisung bei einer if-Anweisung geschweifte Klammer, um die Übersicht zu verbessern.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Warum ist vor &quot;variable&quot; so ein &amp; Zeichen?</p>
</blockquote>
<p>Dies ist der Address-Of Operator. Er holt die Adresse, also den Zeiger, der entsprechenden Variable.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740601</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 10 Jul 2009 18:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Fri, 10 Jul 2009 19:59:05 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<pre><code>IrrlichtDevice *device =createDevice(video::EDT_SOFTWARE,dimension2d&lt;s32&gt;(640, 480), 16,false, false, false, 0);
</code></pre>
<p>Hier ist ja *device die Zeigervariable. Da sie aber auf CreateDevice() zeigt, ist es kein Nullzeiger oder?<br />
Wenn der Befehl (createDevice()) aber nicht ausgeführt werden konnte, dann wird 0 zurückgegeben, und daher ist die variable ein Nullzeiger, richtig?</p>
</blockquote>
<p>CreateDevice gibt einfach einen Zeiger zurück. Das kann ein gültiger Zeiger (respektive ein Zeiger, der auf ein Objekt zeigt), oder einer, der nicht gültig ist, was dann einfach 0 ist. (Beachte hier aber, dass es nicht so etwas, wie NULL ist, wie in anderen Sprachen, sondern einfach ein gültiger Wert, der einfach anderst interpretiert werden muss). CreateDevice wird auf jeden Fall &quot;richtig&quot; ausgeführt, kann aber unter Umständen 0 zurückgeben (ich gehe jetzt einfach mal davon aus, dass das so ist..) , was signalisieren soll, dass ein Fehler passiert ist.</p>
<blockquote>
<p>Und durch...</p>
<pre><code>if (!device)
		return 1;
</code></pre>
<p>...wird dann geprüft ob device 0 ist. Bitte korrigiert mich wenn ich das falsch verstanden habe. Btw. warum ist im letzten code der if() Befehl ohne {} Klammern?</p>
</blockquote>
<p>if () ruft immer nur den nächsten Block an Code auf, was entweder eine Zeile ist, oder eine Sammlung von Anweisungen, wass durch die Klammern gemacht wird.</p>
<blockquote>
<p>Und dann noch ne Kleinigkeit..</p>
<pre><code>int* zeiger = &amp;variable; //Einen Zeiger definieren der auf die Adresse von &quot;variable&quot; zeigt...
</code></pre>
<p>Warum ist vor &quot;variable&quot; so ein &amp; Zeichen?</p>
<p>mfg<br />
Schoasch</p>
</blockquote>
<p>&amp; ist ein Operator, welcher dir im Normalfall die Addresse der Variable zurückgibt. Jedoch lässt sich dieser Operator, wie die meisten auch überladen und <em>könnte</em> etwas anderes tun, als die Addresse zurückzugeben. (z.B bei einem Smart Pointer)</p>
<p>EDIT:<br />
Mist.. Das waren ja 2 Seiten.. -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740667</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Jul 2009 19:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Sat, 11 Jul 2009 07:28:25 GMT]]></title><description><![CDATA[<p>Hey, danke für eure Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
<p>Den &amp; Operator braucht man aber außer bei Zeigern nicht, oder?</p>
<blockquote>
<p>CreateDevice gibt einfach einen Zeiger zurück. Das kann ein gültiger Zeiger (respektive ein Zeiger, der auf ein Objekt zeigt), oder einer, der nicht gültig ist, was dann einfach 0 ist. (Beachte hier aber, dass es nicht so etwas, wie NULL ist, wie in anderen Sprachen, sondern einfach ein gültiger Wert, der einfach anderst interpretiert werden muss). CreateDevice wird auf jeden Fall &quot;richtig&quot; ausgeführt, kann aber unter Umständen 0 zurückgeben (ich gehe jetzt einfach mal davon aus, dass das so ist..) , was signalisieren soll, dass ein Fehler passiert ist.</p>
</blockquote>
<p>Ist IrrlichtDevice denn vergleichbar mit Variablentypen? Denn der Zeiger wurde ja vorher nicht definiert (z.B. als int).<br />
Und hier beim nächsten Code:</p>
<pre><code>device-&gt;setWindowCaption(L&quot;Hello World! - Irrlicht Engine Demo&quot;);
</code></pre>
<p>steht device-&gt;... was heißt das?<br />
Sry für meine blöden Fragen , aber ich als ehemaliger BB prorammierer, komme von dem alten Prinzip nur schwer los, da sagt man zum Beispiel: mesh = LoadMesh(), wobei mesh eine Variable ist und den Wert von LoadMesh zurückliefert..<br />
mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740806</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Sat, 11 Jul 2009 07:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Sat, 11 Jul 2009 10:00:21 GMT]]></title><description><![CDATA[<p>Üblicherweise wird der &amp;-Operator lediglich in Zusammenhang mit Zeigern gebraucht ja.</p>
<p>Doch device wird deklariert:</p>
<blockquote>
<pre><code class="language-cpp">IrrlichtDevice *device =createDevice(video::EDT_SOFTWARE,dimension2d&lt;s32&gt;(640, 480), 16,false, false, false, 0);
</code></pre>
</blockquote>
<p>und ist vom Typ IrrlichtDevice, was eine Klasse ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740853</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 11 Jul 2009 10:00:21 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Sat, 11 Jul 2009 10:44:56 GMT]]></title><description><![CDATA[<p>Danke für deine Antwort <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
<p>Aber wird durch device-&gt; einfach nur ein weiterer Wert über den Zeiger an die Klasse IrrlichtDevice übergeben?</p>
<p>mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740875</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Sat, 11 Jul 2009 10:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Sat, 11 Jul 2009 10:49:49 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">IrrlichtDevice *device = createDevice( ... );
</code></pre>
<p>device ist ein Zeiger auf ein Irrlicht-Objekt.<br />
*device ist das Objekt hinter dem Zeiger.</p>
<pre><code class="language-cpp">device-&gt;doSomething();
</code></pre>
<p>ist kurz für</p>
<pre><code class="language-cpp">(*device).doSomething();
</code></pre>
<p>und das solltest du ja kennen.</p>
<p>Und schaff dir bitte ein ordentliches Grundlagenbuch an. Wenn du aus den paar Kommentaren schlau geworden bist, sagt das nix gutes über dein Buch (oder deine non-digitalen Lesefähigkeiten ;)) aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740877</guid><dc:creator><![CDATA[jodler]]></dc:creator><pubDate>Sat, 11 Jul 2009 10:49:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Sat, 11 Jul 2009 10:51:59 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Den &amp; Operator braucht man aber außer bei Zeigern nicht, oder?</p>
</blockquote>
<p>Doch.</p>
<pre><code class="language-cpp">int x = 2342;
int y = x &amp; 1; // Bitwise AND

int&amp; r = x; // Reference

int* p = &amp;x; // Address-Of
</code></pre>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Ist IrrlichtDevice denn vergleichbar mit Variablentypen? Denn der Zeiger wurde ja vorher nicht definiert (z.B. als int).</p>
</blockquote>
<p>IrrlichtDevice ist eine Klasse, welche irgendwo definiert wurde.<br />
IrrlichtDevice* (der zusätzliche Stern) bedeutet, dass man einen Zeiger auf ein IrrlichtDevice Objekt möchte.<br />
IrrlichtDevice** bedeutet, dass man einen Zeiger auf einen Zeiger auf ein IrrlichtDevice Objekt möchte.<br />
IrrlichtDevice*** bedeutet, dass man einen Zeiger auf einen Zeiger auf einen Zeiger usw. <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>Schoasch schrieb:</p>
<blockquote>
<pre><code>device-&gt;setWindowCaption(L&quot;Hello World! - Irrlicht Engine Demo&quot;);
</code></pre>
<p>steht device-&gt;... was heißt das?</p>
</blockquote>
<p>Das ist der <code>operator -&gt;</code> . Erbedeutet das gleiche wie:<br />
<code>(*device).</code><br />
Also das Objekt wird dereferenziert und danach wird auf ein entsprechendes Element des Objekts zugegriffen. In diesem Fall ist es die <code>setWindowCaption</code> Funktion.</p>
<p>Aber ganz ehrlich, das sind absolute Grundlagen. Das findest du in jedem vernünftigen Grundlagenbuch. Es gibt wirklich genügend Lektüre ...</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740880</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 11 Jul 2009 10:51:59 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 16:59:32 GMT]]></title><description><![CDATA[<p>Danke für eure Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
<p>Aber was bringt sich das wenn man sagt IrrlichtDevice *device = CreateDevice()?<br />
Viel einfacher wäre es doch zu schrieben IrrlichtDevice.CreateDevice();<br />
Denn CreateDevice ist doch eine Funktion von der Klasse IrrlichtDevice, und gibt daher auch einen Wert zurück, mit dem man dann überprüfen kann, ob CreateDevice() erfolgreich ausgeführt wurde.<br />
Macht man die Zeigervariable nur aus Faulheitsgründen, um nicht immer z.B. IrrlichtDevice.setWindowCaption(), sonder nur (*device).setWindowCaption() schreiben zu müssen?</p>
<p>mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742274</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Mon, 13 Jul 2009 16:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 17:55:31 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Denn CreateDevice ist doch eine Funktion von der Klasse IrrlichtDevice, ...</p>
</blockquote>
<p>HALLOOOO?<br />
Tipp: Lern zuerst mal C++ ...</p>
<p>Es tut mir leid, aber darauf fällt mir echt nichts anderes mehr ein. Du weisst anscheinend nicht einmal was eine freie Funktion ist. Kauf dir ein gutes C++ Buch, dort wirst du dann auch in aller Ruhe mit C++ Zeiger vertraut gemacht. Oft werden hier die folgenden zwei Bücher empfohlen:<br />
- C++ Primer<br />
- Thinking in C++ 1&amp;2 (auch gratis als PDF erhältlich, nur Englisch)</p>
<p>Alles andere scheint mir echt sinnlos zu sein. Dir fehlen anscheinend jegliche Art von Grundlagen, was C++ betrifft. Anderst kann ich mir deine Aussagen einfach nicht mehr erklären.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742299</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 13 Jul 2009 17:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 18:18:10 GMT]]></title><description><![CDATA[<blockquote>
<p>Du weisst anscheinend nicht einmal was eine freie Funktion ist.</p>
</blockquote>
<p>Also das brauchst du mir jetzt aber wirklich nicht vorzuwerfen, zumal ich schon viele Programmiersprachen beherrsche und das selbst in C++ gut beherrsche.</p>
<p>Nur weil ich mich bei diesem Bereich nicht auskenne lass ich mich nicht beleidigen. Außedem besitze ich den C++ Primer, der ist mir aber bei den meisten Stellen zu ausführlich, und das Kapitel der Zeiger <strong>habe</strong> ich gelesen, wegen den vielen Fachbegriffen aber nicht verstanden (...und nein, ich will jetzt keine dummen Anmachsprüche).</p>
<p>mfg<br />
Schoasch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742313</guid><dc:creator><![CDATA[Schoasch]]></dc:creator><pubDate>Mon, 13 Jul 2009 18:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 19:05:32 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Nur weil ich mich bei diesem Bereich nicht auskenne lass ich mich nicht beleidigen.</p>
</blockquote>
<p>Dravere meint das nicht böse, aber du solltest wirklich Theorie anschauen, um das Verständnis zu erlangen. Memberfunktionen und freie Funktionen sind eben nicht das Gleiche.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Außedem besitze ich den C++ Primer, der ist mir aber bei den meisten Stellen zu ausführlich, und das Kapitel der Zeiger <strong>habe</strong> ich gelesen, wegen den vielen Fachbegriffen aber nicht verstanden</p>
</blockquote>
<p>Hm, welche Fachbegriffe treten denn im Zusammenhang mit Zeigern auf? Mir fällt eigentlich nur gerade &quot;dereferenzieren&quot; ein, und dessen Bedeutung hat man noch schnell einmal begriffen.</p>
<p>Aber vielleicht hilft dir ja <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">dieser Artikel</a> etwas, dort sind Zeiger recht ausführlich erklärt. Und lies vielleicht dein Kapitel im Buch als Ergänzung nochmals, das kann sicher nicht schaden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742342</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 13 Jul 2009 19:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 19:12:04 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Also das brauchst du mir jetzt aber wirklich nicht vorzuwerfen, zumal ich schon viele Programmiersprachen beherrsche und das selbst in C++ gut beherrsche.</p>
</blockquote>
<p>C++ entspricht aber nicht vielen Programmiersprachen, daher bringt es ziemlich wenig, wenn du andere Programmiersprachen beherrschst. Du musst C++ können.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Nur weil ich mich bei diesem Bereich nicht auskenne lass ich mich nicht beleidigen.</p>
</blockquote>
<p>Ich will dich nicht beleidigen, es ist einfach eine Feststellung. Du hast ein durcheinander von Begriffen und Funktionalitäten. Es scheint, als hättest du nur mal C++ flüchtig angeschaut.</p>
<p>Schoasch schrieb:</p>
<blockquote>
<p>Außedem besitze ich den C++ Primer, der ist mir aber bei den meisten Stellen zu ausführlich, und das Kapitel der Zeiger <strong>habe</strong> ich gelesen, wegen den vielen Fachbegriffen aber nicht verstanden...</p>
</blockquote>
<p>Und diese Aussage scheint mir der beste Beweis für meine Annahme zu sein. Er ist dir zu ausführlich, daher hast du wohl Dinge übersprungen und nicht richtig verstanden und bei den Zeiger bist du dann zum Beispiel nicht mehr mitgekommen.</p>
<p>Die Sprache C++ ist sehr mühsam zu lernen und die Grundlagen sollte man ganz genau anschauen und nicht überspringen.</p>
<p>Ich meine, wie zum Geier kommst du darauf, dass <code>CreateDevice</code> zur Klasse <code>IrrlichtDevice</code> gehören soll? Das entspricht nicht der Syntax von C++ und hat hier auch überhaupt niemand behauptet.<br />
Und auch deine Aussagen danach sind einfach nur ein Durcheinander. Entweder fehlen dir Grundlagen oder du hast unsere Beiträge nicht richtig gelesen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742345</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 13 Jul 2009 19:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Mon, 13 Jul 2009 19:18:04 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Also das brauchst du mir jetzt aber wirklich nicht vorzuwerfen, zumal ich schon viele Programmiersprachen beherrsche und das selbst in C++ gut beherrsche.</p>
<p>Nur weil ich mich bei diesem Bereich nicht auskenne lass ich mich nicht beleidigen. ...</p>
</blockquote>
<p>Wo er Recht hat, hat er Recht. Wie kommst du z.B. auf die Zugehörigkeit der<br />
Funktion CreateDevice zur Klasse IrrlichtDevice? Das sind C++ Grundlagen. Ich sehe Draveres Beitrag nicht als eine Beleidigung an; aber Recht gebe ich dir: die Wahrheit kann schon ernüchternd und schmerzhaft, sozusagen beleidigend sein.<br />
Und ja, einen leicht piekenden Unterton kann man ihm und den anderen meiner Meinung nach aufgrund der aufgewendeten, jedoch fruchtlosen Mühe nicht verübeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742351</guid><dc:creator><![CDATA[einmisch0r]]></dc:creator><pubDate>Mon, 13 Jul 2009 19:18:04 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Zeiger on Tue, 14 Jul 2009 06:35:38 GMT]]></title><description><![CDATA[<p>Schoasch schrieb:</p>
<blockquote>
<p>Nur weil ich mich bei diesem Bereich nicht auskenne lass ich mich nicht beleidigen.</p>
</blockquote>
<p>Du kennst offensichtlich elementare Sprachelemente nicht, insofern ist es sinnlos dir die darauf aufbauende Konzepte erklären zu wollen. Du wirst sie eh nicht verstehen! Nimm deine Bücher zur Hand und arbeite das nach, und melde dich dann wieder.</p>
<p>P.S. Wer im Glashaus sitzt sollte nicht mit Steinen werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1742495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1742495</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Tue, 14 Jul 2009 06:35:38 GMT</pubDate></item></channel></rss>