<?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[const Zeiger]]></title><description><![CDATA[<p>Hallo, warum funktioniert das nicht? ptr ist doch gar nicht const, aber Compiler meckert trotzdem:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
	const int a = 5, *ptr = &amp;a;
	int b = 9;
	ptr = &amp;b;
	*ptr = 10;

	cout &lt;&lt; b;
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/271024/const-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 18:02:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271024.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jul 2010 09:36:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const Zeiger on Thu, 22 Jul 2010 09:36:09 GMT]]></title><description><![CDATA[<p>Hallo, warum funktioniert das nicht? ptr ist doch gar nicht const, aber Compiler meckert trotzdem:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
	const int a = 5, *ptr = &amp;a;
	int b = 9;
	ptr = &amp;b;
	*ptr = 10;

	cout &lt;&lt; b;
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1929918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1929918</guid><dc:creator><![CDATA[Zeiger]]></dc:creator><pubDate>Thu, 22 Jul 2010 09:36:09 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger on Thu, 22 Jul 2010 09:39:51 GMT]]></title><description><![CDATA[<p>ptr ist Zeiger auf const.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1929922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1929922</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 22 Jul 2010 09:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger on Thu, 22 Jul 2010 09:42:54 GMT]]></title><description><![CDATA[<p>ab Zeile 8 aber nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1929924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1929924</guid><dc:creator><![CDATA[Zeiger]]></dc:creator><pubDate>Thu, 22 Jul 2010 09:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger on Thu, 22 Jul 2010 09:54:34 GMT]]></title><description><![CDATA[<p>Zeiger schrieb:</p>
<blockquote>
<p>ab Zeile 8 aber nicht mehr.</p>
</blockquote>
<p>Doch. du änderst den Typ des Zeigers nicht dadurch, dass du ihn auf etwas anderes zeigen lässt. ptr ist immer noch vom Typ &quot;Zeiger auf const int&quot;. Dies ist natürlich kompatibel damit ihn auf einen int zeigen zu lassen, aber dennoch ist der dereferenzierte Zeiger ein const int. Mit const_cast kannst du dem Compiler beibringen, dass du weißt was du tust (und hoffentlich tust du das wirklich!) und das const ignoriert werden soll.</p>
<pre><code class="language-cpp">int main()
{
    const int a = 5, *ptr = &amp;a;
    int b = 9;

    ptr = &amp;b;
    *const_cast&lt;int*&gt;(ptr) = 10;  // Geht.
    cout &lt;&lt; b;                    // 10

    ptr = &amp;a;
    *const_cast&lt;int*&gt;(ptr) = 10;  // Hier passiert wer weiß was
    cout &lt;&lt; a;                    // Irgendwas

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1929928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1929928</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 22 Jul 2010 09:54:34 GMT</pubDate></item></channel></rss>