<?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[Zeiger]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine Frage zu folgendem Beispielcode:</p>
<pre><code class="language-cpp">char* p;        
memset(WorkString, 0x00, sizeof(WorkString));
p = strstr(Buffer, TestString);
if(p == 0) {
         return WorkString;	
} else {
         if ('R' != p[0]) {	
		     p++;
            ...
</code></pre>
<p>p ist also ein Zeiger auf ein char-Objekt. Mit strstr(Buffer, TestString) wird diesem p die Adresse der Stelle angezeigt, an der TestString im Buffer vorkommt. Soweit denke ich stimmt das, oder?<br />
Was mir jetzt unklar ist: was bedeutet if ('R' != p[0]) ? Heißt das, falls die Adresse nicht mit 'R' beginnt?<br />
Falls ja: was sind das für spezielle Adressen, die mit einem R beginnen? Ich wundere mich nämlich, warum dafür extra eine if-Schleife gemacht wird.</p>
<p>Schon mal ein dickes Danke für eure Hilfe!</p>
<p>Liebe Grüße,<br />
Julia <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/204020/zeiger</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 07:54:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204020.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Jan 2008 12:04:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:04:54 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine Frage zu folgendem Beispielcode:</p>
<pre><code class="language-cpp">char* p;        
memset(WorkString, 0x00, sizeof(WorkString));
p = strstr(Buffer, TestString);
if(p == 0) {
         return WorkString;	
} else {
         if ('R' != p[0]) {	
		     p++;
            ...
</code></pre>
<p>p ist also ein Zeiger auf ein char-Objekt. Mit strstr(Buffer, TestString) wird diesem p die Adresse der Stelle angezeigt, an der TestString im Buffer vorkommt. Soweit denke ich stimmt das, oder?<br />
Was mir jetzt unklar ist: was bedeutet if ('R' != p[0]) ? Heißt das, falls die Adresse nicht mit 'R' beginnt?<br />
Falls ja: was sind das für spezielle Adressen, die mit einem R beginnen? Ich wundere mich nämlich, warum dafür extra eine if-Schleife gemacht wird.</p>
<p>Schon mal ein dickes Danke für eure Hilfe!</p>
<p>Liebe Grüße,<br />
Julia <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/1445578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445578</guid><dc:creator><![CDATA[julchen81]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:13:27 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>P ist ein char-Pointer, der nach strstr() auf den ersten Index von TestString innerhalb des Strings Buffer zeigt. p[0] gibt nun das Zeichen zurück, das genau an dieser Adresse steht. Dann wird geprüft, ob das Zeichen ein &quot;R&quot; ist. Alles halb so wild <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>Wenn du mehr über diese Verhalten von p[0] wissen möchtest und auch, was das p++ in Zeile 8 soll, such mal nach &quot;Zeigerarithmetik&quot;.</p>
<p>Achja, bitte nicht &quot;If-Schleife&quot; sagen. If ist keine Schleife <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>gruß<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445589</guid><dc:creator><![CDATA[mad_martin]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:18:21 GMT]]></title><description><![CDATA[<p>Auch wenn das eher ins C Forum gehört (der Code enthält nichts was ihn als C++ Code kennzeichnet) mal eine Antwort...</p>
<p>julchen81 schrieb:</p>
<blockquote>
<p>...p ist also ein Zeiger auf ein char-Objekt. Mit strstr(Buffer, TestString) wird diesem p die Adresse der Stelle <strong>angezeigt</strong>, an der TestString im Buffer vorkommt.</p>
</blockquote>
<p>Ungünstige Formulierung, Besser: zugewiesen (p enthält anschließend ja die Adresse an der entsprechenden Stelle)</p>
<p>julchen81 schrieb:</p>
<blockquote>
<p>Soweit denke ich stimmt das, oder?<br />
Was mir jetzt unklar ist: was bedeutet if ('R' != p[0])? Heißt das, falls die Adresse nicht mit 'R' beginnt?</p>
</blockquote>
<p>Du musst hier eins Wissen: Die Arraysyntax kann man auch auf Zeiger anwenden. p[0] besagt: gibt mir das erste Element ausgehend von der Adresse p zurück (p[0] ist also der Inhalt der Speicherzelle auf die p verweist). Da es sich hier um einen Zeiger auf char handelt, ist hierbei ein char gemeint.</p>
<p>&quot;if ('R' != p[0])&quot; Besagt also Wenn das Zeichen an der Adresse p kein 'R' ist dann...</p>
<p>cu André<br />
P.S: Bitte demnächst das richtige Forum verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445594</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:19:44 GMT]]></title><description><![CDATA[<p>hey,</p>
<p>ich bin mir jetzt nicht sicher, ob ich das so ganz verstanden habe:<br />
wenn also z.B. TestString = &quot;R10&quot;, dann liefert doch p[0] ein R, weil dieser TestString mit einem R beginnnt. p[0] liefert also das erste Zeichen dieses TestStrings? <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>
<p>Würd mich freuen, noch mal von dir zu hören... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Und danke für den Tipp mit der if-Schleife (war jetzt aber das letzte Mal, dass ich das schreib!), mir kam dieser Ausdruck sowieso irgendwie eigenartig vor.</p>
<p>Julia</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445595</guid><dc:creator><![CDATA[julchen81]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:24:46 GMT]]></title><description><![CDATA[<p>julchen81 schrieb:</p>
<blockquote>
<p>ich bin mir jetzt nicht sicher, ob ich das so ganz verstanden habe:<br />
wenn also z.B. TestString = &quot;R10&quot;, dann liefert doch p[0] ein R, weil dieser TestString mit einem R beginnnt. p[0] liefert also das erste Zeichen dieses TestStrings? <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>
</blockquote>
<p>Ein C-String ist nichts anderes als ein Array von Werten.<br />
In deinem Beispiel (TestString = &quot;R10&quot;) würde:<br />
p[0] = 'R'<br />
p[1] = '1'<br />
p[2] = '0'<br />
p[3] = '\0'<br />
sein...</p>
<p>cu André<br />
P.S: Wenn du C++ verwendest bitte möglichst auch std::string statt char-Arrays verwenden, wirst es damit leichter haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445600</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 12:28:06 GMT]]></title><description><![CDATA[<p>Wie hübsch, ich hab's verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Und dank dir auch für den zusätlichen Tipp zu std::string, aber ich hab den Code nicht selbst programmiert, der ist aus dem Beispielprogramm, das ich durcharbeiten muss.</p>
<p>Liebe Grüße und noch einen schönen Tag!<br />
Julia <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/1445602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445602</guid><dc:creator><![CDATA[julchen81]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:28:06 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Tue, 29 Jan 2008 13:11:31 GMT]]></title><description><![CDATA[<p>Vieleicht hilft dir dieses construct auch noch.</p>
<p>Wenn p ein Pointer ist, dann sind folgende Ausdrucke equivalent.</p>
<p>p[0] equivalent zu *(p + 0)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445636</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Tue, 29 Jan 2008 13:11:31 GMT</pubDate></item></channel></rss>