<?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[Konstante Zeiger definieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lese mich gerade in C++ ein und bin bei den Zeigern schon auf das erste Problem gestoßen:</p>
<p>Einen Zeiger mit <code>int *zeiger;</code> zu definieren funktionierte ohne Probleme. Auch ein Zeiger auf ein konstantes int ging: <code>const int *zeiger;</code> .</p>
<p>Dann stand im Buch jedoch folgendes:</p>
<pre><code class="language-cpp">const *char cptr = 0;
</code></pre>
<p>(für einen konstanten Zeiger).</p>
<p>Wenn ich dies allerdings compile, kommt eine Fehlermeldung:</p>
<pre><code>test.cpp: In function `int main()':
test.cpp:8: error: expected unqualified-id before &quot;char&quot;
test.cpp:8: error: expected initializer before &quot;char&quot;
</code></pre>
<p>Google hat mich dann auf die Variante <code>char * const cptr = 0;</code> gebracht.</p>
<p>Was ist denn nun &quot;richtig&quot; bzw. funktioniert die Variante aus dem Buch überhaupt irgendwie - und ich stelle mich einfach zu blöd an? Oder gibt es in Sachen Zeigerdefinition einen Standard, an den man sich halten sollte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250887/konstante-zeiger-definieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 19:50:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250887.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Sep 2009 17:26:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 17:26:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lese mich gerade in C++ ein und bin bei den Zeigern schon auf das erste Problem gestoßen:</p>
<p>Einen Zeiger mit <code>int *zeiger;</code> zu definieren funktionierte ohne Probleme. Auch ein Zeiger auf ein konstantes int ging: <code>const int *zeiger;</code> .</p>
<p>Dann stand im Buch jedoch folgendes:</p>
<pre><code class="language-cpp">const *char cptr = 0;
</code></pre>
<p>(für einen konstanten Zeiger).</p>
<p>Wenn ich dies allerdings compile, kommt eine Fehlermeldung:</p>
<pre><code>test.cpp: In function `int main()':
test.cpp:8: error: expected unqualified-id before &quot;char&quot;
test.cpp:8: error: expected initializer before &quot;char&quot;
</code></pre>
<p>Google hat mich dann auf die Variante <code>char * const cptr = 0;</code> gebracht.</p>
<p>Was ist denn nun &quot;richtig&quot; bzw. funktioniert die Variante aus dem Buch überhaupt irgendwie - und ich stelle mich einfach zu blöd an? Oder gibt es in Sachen Zeigerdefinition einen Standard, an den man sich halten sollte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784296</guid><dc:creator><![CDATA[Amgon]]></dc:creator><pubDate>Fri, 25 Sep 2009 17:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 18:07:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const char *cstr = &quot;Hallo&quot;; // Zeiger auf konstante Daten
char * const cstr = &quot;Hallo&quot;; // Konstanter Zeiger auf Daten
const char * const cstr = &quot;Hallo&quot;; // Konstanter Zeiger, konstante Daten
</code></pre>
<p>Wo const steht ist egal. const int a == int const a.<br />
Wenn const links vom * steht, ist der Zeiger konstant, andernfalls die Daten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784298</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Fri, 25 Sep 2009 18:07:31 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 17:39:08 GMT]]></title><description><![CDATA[<p>Leider bekomme ich trotzdem diese Fehlermeldung, wie eben auch:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {

    const * char cstr = &quot;Hallo&quot;; // Konstanter Zeiger auf Daten

    return 0;

}
</code></pre>
<pre><code>test.cpp: In function `int main()':
test.cpp:6: error: expected unqualified-id before &quot;char&quot;
test.cpp:6: error: expected initializer before &quot;char&quot;
</code></pre>
<p>Als Compiler nehme ich GCC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784300</guid><dc:creator><![CDATA[Amgon]]></dc:creator><pubDate>Fri, 25 Sep 2009 17:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 18:08:33 GMT]]></title><description><![CDATA[<p>Es heißt ja auch <code>char * const</code> , rechte Seite vom * ist const ---&gt; Konstanter Zeiger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784310</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Fri, 25 Sep 2009 18:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 18:17:54 GMT]]></title><description><![CDATA[<p>Also doch so? <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>Gut, so funktioniert es auch einwandfrei. Dankeschön.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784314</guid><dc:creator><![CDATA[Amgon]]></dc:creator><pubDate>Fri, 25 Sep 2009 18:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 18:36:09 GMT]]></title><description><![CDATA[<p>Amgon schrieb:</p>
<blockquote>
<p>Leider bekomme ich trotzdem diese Fehlermeldung, wie eben auch:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {

    const * char cstr = &quot;Hallo&quot;; // Konstanter Zeiger auf Daten

    return 0;

}
</code></pre>
</blockquote>
<p>Bist Du dir sicher, dass Du dich nicht verguckt hast? Steht im Buch vielleicht:</p>
<pre><code class="language-cpp">char * const cstr = &quot;Hallo&quot;;
</code></pre>
<p>?</p>
<p>Denn <code>const*char</code> macht wirklich keinen Sinn.</p>
<p>edit: Upps! Ich sollte mir angewöhnen, vor dem Antwortschreiben mal die Seite zu refreshen. <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/1784318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784318</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Fri, 25 Sep 2009 18:36:09 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Fri, 25 Sep 2009 18:25:53 GMT]]></title><description><![CDATA[<p>Klar, wie sonst? Eine logischere Eselsbrücke als das Links/Rechts vom Stern wäre etwa:</p>
<pre><code class="language-cpp">+-----------+-----------+
   |  Datentyp | Zeigertyp |
   +-----------+-----------+
   |   char    |    *      | = char *data, nicht const-Daten/Pointer
   |const char |    *      | = const char *data, nicht const-Pointer, const-Daten
   |   char    |  *const   | = char *const data, nicht const-Daten, const Pointer
   |const char |  *const   | = const char *const data, const-Daten/Pointer
   +-----------+-----------+
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1784319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784319</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Fri, 25 Sep 2009 18:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Zeiger definieren on Sat, 26 Sep 2009 07:58:01 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22694">@Amgon</a>:<br />
Also wenn dann bitte</p>
<pre><code class="language-cpp">const char* const cstr = &quot;Hallo&quot;; // Konstanter Zeiger auf Daten
</code></pre>
<p>Du zeigst ja schließlich auf ein Stringliteral.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784465</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 26 Sep 2009 07:58:01 GMT</pubDate></item></channel></rss>