<?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 auf Integer mit const int Addresse initialisieren]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code:</p>
<pre><code>const int p = 10;
int * const j = &amp;p;
</code></pre>
<p>generiert folgende Fehlermeldung:</p>
<pre><code>error C2440: 'initializing' : cannot convert from 'const int *' to 'int *const '
</code></pre>
<p>Warum spuckt der Compiler diese Fehlermeldung aus? Ich initialsiere einen Konstanten Zeiger auf ein Integer mit einer Addresse eines Konstanten Integer.<br />
Mir ist klar das es wenig Sinn macht, ueber den Zeiger kann man spaeter den Wert nicht aendern -- da der ja Konstant ist --. Sollte es dem Compiler dann nicht egal sein ob p const oder nicht const ist??</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/topic/327844/const-zeiger-auf-integer-mit-const-int-addresse-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 17:37:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327844.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Sep 2014 02:47:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const Zeiger auf Integer mit const int Addresse initialisieren on Mon, 08 Sep 2014 02:47:11 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code:</p>
<pre><code>const int p = 10;
int * const j = &amp;p;
</code></pre>
<p>generiert folgende Fehlermeldung:</p>
<pre><code>error C2440: 'initializing' : cannot convert from 'const int *' to 'int *const '
</code></pre>
<p>Warum spuckt der Compiler diese Fehlermeldung aus? Ich initialsiere einen Konstanten Zeiger auf ein Integer mit einer Addresse eines Konstanten Integer.<br />
Mir ist klar das es wenig Sinn macht, ueber den Zeiger kann man spaeter den Wert nicht aendern -- da der ja Konstant ist --. Sollte es dem Compiler dann nicht egal sein ob p const oder nicht const ist??</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/2416490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416490</guid><dc:creator><![CDATA[HottoMotto]]></dc:creator><pubDate>Mon, 08 Sep 2014 02:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger auf Integer mit const int Addresse initialisieren on Mon, 08 Sep 2014 03:08:48 GMT]]></title><description><![CDATA[<p>Dein Zeiger ist konstant, aber nicht das worauf er zeigt. Das heißt, du kannst dem Zeiger keine andere Adresse zuweisen, aber du könntest den Wert, auf den er zeigt, ändern. Logischerweise darf der daher keine Konstante sein und daher bekommst du einen Fehler. Du brauchst einen Zeiger <em>auf</em> ein konstanten int. Also:</p>
<pre><code>const int* foo = &amp;p;
// oder das gleiche in anderer Reihenfolge
int const* foo = &amp;p;
</code></pre>
<p>Solche Konstrukte liest man am besten von rechts nach links, wobei man &quot;*&quot; als &quot;Zeiger auf&quot; liest:</p>
<pre><code>const int* foo;
</code></pre>
<p>&quot;foo ist ein Zeiger auf einen int, der const ist.&quot; Oder eben</p>
<pre><code>int const* foo;
</code></pre>
<p>&quot;foo ist ein Zeiger auf einen konstanten int.&quot;<br />
Aber eben nicht</p>
<pre><code>int * const foo;
</code></pre>
<p>&quot;foo ist ein konstanter Zeiger auf einen int.&quot; (An sich ist das natürlich ein gültiges Konstrukt, bloß nicht das, was du hier möchtest)</p>
<p>Funktioniert auf englisch etwas besser <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>Du kannst natürlich auch den Zeiger selbst noch konstant machen, falls gewünscht:</p>
<pre><code>int const* const foo;
</code></pre>
<p>&quot;foo ist ein konstanter Zeiger auf einen konstanten int.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416491</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 08 Sep 2014 03:08:48 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger auf Integer mit const int Addresse initialisieren on Mon, 08 Sep 2014 05:15:55 GMT]]></title><description><![CDATA[<p>HottoMotto schrieb:</p>
<blockquote>
<p>Mir ist klar das es wenig Sinn macht, ueber den Zeiger kann man spaeter den Wert nicht aendern -- da der ja Konstant ist --. Sollte es dem Compiler dann nicht egal sein ob p const oder nicht const ist??</p>
</blockquote>
<p>Falls SeppJ recht hat, dann geht es. Mal ausprobieren.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main()
{
	/*const*/ int p = 10;
	int * const j = &amp;p;

	cout &lt;&lt; &quot;p=&quot; &lt;&lt; p &lt;&lt; '\n';
	cout &lt;&lt; &quot;*j=&quot; &lt;&lt; *j &lt;&lt; '\n';
	*j = 11;
	cout &lt;&lt; &quot;*j=&quot; &lt;&lt; *j &lt;&lt; '\n';
}
</code></pre>
<p>Ausgabe</p>
<pre><code>p=10
*j=10
*j=11
</code></pre>
<p>Jupp, es geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416493</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 08 Sep 2014 05:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to const Zeiger auf Integer mit const int Addresse initialisieren on Tue, 09 Sep 2014 04:52:03 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Dein Zeiger ist konstant, aber nicht das worauf er zeigt. Das heißt, du kannst dem Zeiger keine andere Adresse zuweisen, aber du könntest den Wert, auf den er zeigt, ändern. Logischerweise darf der daher keine Konstante sein und daher bekommst du einen Fehler. Du brauchst einen Zeiger <em>auf</em> ein konstanten int. Also:</p>
<pre><code>const int* foo = &amp;p;
// oder das gleiche in anderer Reihenfolge
int const* foo = &amp;p;
</code></pre>
<p>Solche Konstrukte liest man am besten von rechts nach links, wobei man &quot;*&quot; als &quot;Zeiger auf&quot; liest:</p>
<pre><code>const int* foo;
</code></pre>
<p>&quot;foo ist ein Zeiger auf einen int, der const ist.&quot; Oder eben</p>
<pre><code>int const* foo;
</code></pre>
<p>&quot;foo ist ein Zeiger auf einen konstanten int.&quot;<br />
Aber eben nicht</p>
<pre><code>int * const foo;
</code></pre>
<p>&quot;foo ist ein konstanter Zeiger auf einen int.&quot; (An sich ist das natürlich ein gültiges Konstrukt, bloß nicht das, was du hier möchtest)</p>
<p>Funktioniert auf englisch etwas besser <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>Du kannst natürlich auch den Zeiger selbst noch konstant machen, falls gewünscht:</p>
<pre><code>int const* const foo;
</code></pre>
<p>&quot;foo ist ein konstanter Zeiger auf einen konstanten int.&quot;</p>
</blockquote>
<p>Danke fuer die Erklaerung, jetzt habe ich es verstanden <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2416618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416618</guid><dc:creator><![CDATA[HottoMotto]]></dc:creator><pubDate>Tue, 09 Sep 2014 04:52:03 GMT</pubDate></item></channel></rss>