<?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[NULL Zeiger und Vergleichsoperator]]></title><description><![CDATA[<p>Hey,</p>
<p>seid gegrüßt!</p>
<p>habe folgendes Problem:</p>
<pre><code>struct example {
...
...
};

example* pointer; 
pointer = NULL;

if (pointer == NULL) {     // hier kommt die Fehlermeldung
...
...

}
</code></pre>
<p>Also nun frage ich mich, wie kann ich die folgende Bedinung</p>
<pre><code>if (pointer == NULL)
</code></pre>
<p>äquivalent umsetzen, so dass der Compiler das auch versteht was ich will <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 />
Bzw. was muss ich machen, damit ich den Compiler mal endlich verstehe.</p>
<p>Danke schonmal für etwaiger 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>VG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325939/null-zeiger-und-vergleichsoperator</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 13:50:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325939.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 May 2014 14:44:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 14:44:20 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>seid gegrüßt!</p>
<p>habe folgendes Problem:</p>
<pre><code>struct example {
...
...
};

example* pointer; 
pointer = NULL;

if (pointer == NULL) {     // hier kommt die Fehlermeldung
...
...

}
</code></pre>
<p>Also nun frage ich mich, wie kann ich die folgende Bedinung</p>
<pre><code>if (pointer == NULL)
</code></pre>
<p>äquivalent umsetzen, so dass der Compiler das auch versteht was ich will <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 />
Bzw. was muss ich machen, damit ich den Compiler mal endlich verstehe.</p>
<p>Danke schonmal für etwaiger 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>VG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400649</guid><dc:creator><![CDATA[foolaround]]></dc:creator><pubDate>Sat, 24 May 2014 14:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 14:49:43 GMT]]></title><description><![CDATA[<p>foolaround schrieb:</p>
<blockquote>
<p>Bzw. was muss ich machen, damit ich den Compiler mal endlich verstehe.</p>
</blockquote>
<p>Die Fehlermeldung lesen. Oder sie hier posten und erklären lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400651</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 24 May 2014 14:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 15:01:58 GMT]]></title><description><![CDATA[<p>Okay,</p>
<p>tschuldigung für die etwas unpräzisen Angaben, nächstes mal mache ich es besser.<br />
Habe die Fehlmeldung erst nicht verstanden... Aber jetzt ist alles klar...<br />
kann also geschlossen werden</p>
<p>/close</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400653</guid><dc:creator><![CDATA[foolaround]]></dc:creator><pubDate>Sat, 24 May 2014 15:01:58 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 15:28:27 GMT]]></title><description><![CDATA[<p>für null zeiger immer nullptr verwenden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400656</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sat, 24 May 2014 15:28:27 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 15:56:37 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>für null zeiger immer nullptr verwenden!</p>
</blockquote>
<pre><code>0
</code></pre>
<p>ist kürzer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400660</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 24 May 2014 15:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 16:05:26 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<pre><code>0
</code></pre>
<p>ist kürzer.</p>
</blockquote>
<p>Meinst du das ernst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400661</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 24 May 2014 16:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Wed, 11 Jun 2014 22:22:18 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400662</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 22:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 16:29:05 GMT]]></title><description><![CDATA[<p>Ja genau.<br />
Prüfen per impliziter Umwandlung nach bool.</p>
<p>Allgemein muss ich sagen dass ich in C++ sehr selten in die Verlegenheit gerate einen Null-Zeiger zu erzeugen. Und wenn dann ist der Kontext klar und nullptr bringt mir keine Vorteile gegenüber 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400665</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 24 May 2014 16:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 17:20:56 GMT]]></title><description><![CDATA[<p><strong>C++11:</strong></p>
<p>nullptr</p>
<p>eine einheitliche Lösung für Zeiger 0, NULL, null, (void*)0 usw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400677</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Sat, 24 May 2014 17:20:56 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 17:28:20 GMT]]></title><description><![CDATA[<pre><code>boost::optional &lt;&gt;
</code></pre>
<p>ist sowieso viel besser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400679</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sat, 24 May 2014 17:28:20 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 17:34:12 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<pre><code>boost::optional &lt;&gt;
</code></pre>
<p>ist sowieso viel besser</p>
</blockquote>
<p>Hängt wohl vom Einsatzgebiet ab. Wenn man den Wert per Value möchte dann recht sicher, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400683</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 24 May 2014 17:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Wed, 11 Jun 2014 22:22:30 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400687</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 22:22:30 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 18:12:46 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<pre><code>/* [ */ ptr == /* ]*/ 0
</code></pre>
</blockquote>
<pre><code class="language-cpp">!ptr
</code></pre>
<p>ist kürzer.</p>
</blockquote>
<p>Ja genau.<br />
Prüfen per impliziter Umwandlung nach bool.</p>
</blockquote>
<p>Wahrscheinlich bin ich einfach nur ignorant oder steh auf diversen Leitungen. Was könnte daran schiefgehen?</p>
</blockquote>
<p>Nichts. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400692</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 24 May 2014 18:12:46 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 18:42:49 GMT]]></title><description><![CDATA[<p>nullptr hat den Vorteil, daß es die Intention des Programmierers für Leser explizit macht.</p>
<p>Den gleichen Vorteil haben &quot;= default&quot; und &quot;= delete&quot; in C++11.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400696</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Sat, 24 May 2014 18:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 18:49:00 GMT]]></title><description><![CDATA[<p>großbuchstaben schrieb:</p>
<blockquote>
<p>Den gleichen Vorteil haben &quot;= default&quot; und &quot;= delete&quot; in C++11.</p>
</blockquote>
<p>Quatsch. Das defaulten von bspw. Kopier- bzw. Move-konstruktoren spart viel Schreibarbeit.</p>
<blockquote>
<p>nullptr hat den Vorteil, daß es die Intention des Programmierers für Leser explizit macht.</p>
</blockquote>
<p>Nö, das hat <code>NULL</code> auch schon gemacht. <code>nullptr</code> 's hauptsächlicher Vorteil ist overload resolution.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400698</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 24 May 2014 18:49:00 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 19:22:52 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>großbuchstaben schrieb:</p>
<blockquote>
<p>Den gleichen Vorteil haben &quot;= default&quot; und &quot;= delete&quot; in C++11.</p>
</blockquote>
<p>Quatsch. Das defaulten von bspw. Kopier- bzw. Move-konstruktoren spart viel Schreibarbeit.</p>
</blockquote>
<p>der Ton deines Postings gefällt mir nicht. Weniger, weil ich im Internet geschliffene Umgangsformen erwarte, sondern mehr, weil Postings in rüdem Ton oft auch inhaltlich noch Raum zur Optimierung lassen. Aber ich investiere dennoch die zwei Minuten, um zu antworten.</p>
<p>was <code>= delete</code> und <code>= default</code> angeht, verweise ich auf Stroustrups C++11faq, Abschnitt &quot;control of defaults: default and delete&quot;</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>nullptr hat den Vorteil, daß es die Intention des Programmierers für Leser explizit macht.</p>
</blockquote>
<p>Nö, das hat <code>NULL</code> auch schon gemacht. <code>nullptr</code> 's hauptsächlicher Vorteil ist overload resolution.</p>
</blockquote>
<p>was nullptr angeht, verweise ich auf das dort verlinkte `A name for the null pointer`.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400703</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Sat, 24 May 2014 19:22:52 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 20:17:40 GMT]]></title><description><![CDATA[<p>Auch <code>delete</code> ist übrigens ebenfalls primär für Overload-Resolution eingeführt worden, und weniger <em>nur</em> für special member functions. Defaulten spart mir die selbstständige Definition eines Move-Konstruktors, wenn ein User-definierter Kopierkonstruktor vorhanden ist (und der compiler-generierte Move-Konstruktor sicher ausreicht, aber leider standardmäßig als <code>deleted</code> definiert wird).</p>
<blockquote>
<p>However, comments about copy operations and (worse) a user explicitly defining copy operations meant to give the default behavior are not uncommon. Leaving it to the compiler to implement the default behavior is <strong>simpler, less error-prone, and often leads to better object code.</strong></p>
</blockquote>
<p>Steht irgendwo etwas davon dass die Intentionen des Programmierers durch dieses Feature besser zu Tage kommen? Auch ein privat deklarierter Konstruktor oder Zuweisungsoperator gibt eigentlich dieselbe Message. <strong>Ja, es ist auch Syntaxzucker</strong> für frühere Dinge. Aber das ist nicht wichtig. Wichtig ist, dass man damit Dinge deutlich vereinfachen kann.</p>
<p>Konnte man etwa in C++03 Funktionen oder implizite Konvertierungen bei Funktionsaufrufen &quot;deleten&quot;? Bei Funktionstemplates ging das noch durch SFINAE (bzw. konnte man ja einfach per Traits was testen), aber für normale Funktionen war so etwas AFAIR nicht möglich.</p>
<p>Zu <code>nullptr</code> :</p>
<p>N1488 schrieb:</p>
<blockquote>
<p>The result will be more readable code [Syntaxzucker, vollkommen uninteressant], better error detection [Tjoa], and better overload resolution [aha! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> ].</p>
</blockquote>
<p>Schau nur, wie schon <code>std::nullptr_t</code> in die Standardbibliothek integriert wurde, bei Konstruktoren wie dem von Smart-Zeigern oder <code>std::function</code> .</p>
<blockquote>
<p>The following example illustrates additional use cases: the ternary operator, overload resolution, and template specialization.</p>
</blockquote>
<p>Vieles mehr als nur Syntaxzucker, der Intentionen verbirgt, nicht wahr? <code>NULL</code> war auch allbekannt. Wusste jeder drum. Von der Intention her war alles implizit klar. Das Problem mit <code>NULL</code> war aber nicht die gutherzige Intention des Programmierers.</p>
<p>Ich habe übrigens gerade festgestellt, dass du nie angedeutet hast, dass der wesentliche Vorteil von <code>nullptr</code> (und dem defaulten und deleten von Funktionen) darin bestünde, dass sie die Intention festlegen (was ich dank meinem beherzten Temperament implizit annahm). Daher entschuldige ich mich für mein unangebrachtes Verhalten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400712</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 24 May 2014 20:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to NULL Zeiger und Vergleichsoperator on Sat, 24 May 2014 20:32:47 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Ich habe übrigens gerade festgestellt, dass du nie angedeutet hast, dass der wesentliche Vorteil von <code>nullptr</code> (und dem defaulten und deleten von Funktionen) darin bestünde, dass sie die Intention festlegen (was ich dank meinem beherzten Temperament implizit annahm). Daher entschuldige ich mich für mein unangebrachtes Verhalten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
</blockquote>
<p>angenommen <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2400720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2400720</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Sat, 24 May 2014 20:32:47 GMT</pubDate></item></channel></rss>