<?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[geht sowas?]]></title><description><![CDATA[<p>hey,</p>
<p>mein prof hat mir die zusammenstellung hier gegeben und ich kann das resultat nicht nachvollziehen. Also hier der Code:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

int main(void){
static char* z[] = {&quot;JAGURAR&quot;, &quot;OPEL&quot;, &quot;MAZDA&quot;, &quot;AUDI&quot;, &quot;TOYOTA&quot;};
char** zz[] = {z+4,z+3,z+2,z+1,z};
char*** zzz = zz;

		printf(&quot;%s  \n&quot;,*--*++zzz+2); //1.Ausgabe ZDA
		printf(&quot;%s  \n&quot;,3 + *zzz[-2]); //2.Ausgabe keine ausgabe
		printf(&quot;%s  \n&quot;,*(zz[3]+1)+1); //3.Ausgabe AZDA
		printf(&quot;%s  \n&quot;,1 + zzz[-1][-1]); //4.Ausgabe UDI
}
</code></pre>
<p>1.Ausgabe<br />
er gibt zwar zda aus, aber wie kann ich das nachvollziehen. Heißt das +2 das, ab dem 2ten zeichen ausgegeben wird oder wie?<br />
2.das -2 weißt auf nichts zurück deswegen keine ausgabe?<br />
3.keine Ahnung was, beim ersten oder +1 passiert <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="😕"
    /><br />
4.wie soll ich das -1 verstehen.<br />
getestet hab ich das mit MSVC++ 7.1 und dem mingw</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132920/geht-sowas</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 19:04:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132920.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Jan 2006 04:02:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to geht sowas? on Sat, 14 Jan 2006 05:14:17 GMT]]></title><description><![CDATA[<p>hey,</p>
<p>mein prof hat mir die zusammenstellung hier gegeben und ich kann das resultat nicht nachvollziehen. Also hier der Code:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

int main(void){
static char* z[] = {&quot;JAGURAR&quot;, &quot;OPEL&quot;, &quot;MAZDA&quot;, &quot;AUDI&quot;, &quot;TOYOTA&quot;};
char** zz[] = {z+4,z+3,z+2,z+1,z};
char*** zzz = zz;

		printf(&quot;%s  \n&quot;,*--*++zzz+2); //1.Ausgabe ZDA
		printf(&quot;%s  \n&quot;,3 + *zzz[-2]); //2.Ausgabe keine ausgabe
		printf(&quot;%s  \n&quot;,*(zz[3]+1)+1); //3.Ausgabe AZDA
		printf(&quot;%s  \n&quot;,1 + zzz[-1][-1]); //4.Ausgabe UDI
}
</code></pre>
<p>1.Ausgabe<br />
er gibt zwar zda aus, aber wie kann ich das nachvollziehen. Heißt das +2 das, ab dem 2ten zeichen ausgegeben wird oder wie?<br />
2.das -2 weißt auf nichts zurück deswegen keine ausgabe?<br />
3.keine Ahnung was, beim ersten oder +1 passiert <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="😕"
    /><br />
4.wie soll ich das -1 verstehen.<br />
getestet hab ich das mit MSVC++ 7.1 und dem mingw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/966140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/966140</guid><dc:creator><![CDATA[mosta]]></dc:creator><pubDate>Sat, 14 Jan 2006 05:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Mon, 16 Jan 2006 11:26:20 GMT]]></title><description><![CDATA[<p>Du solltest dazu mal deine Aufzeichnungen über Operatoren und Zeigerarithmetik zur Hand nehmen.</p>
<p>mosta schrieb:</p>
<blockquote>
<p>1.Ausgabe<br />
er gibt zwar zda aus, aber wie kann ich das nachvollziehen. Heißt das +2 das, ab dem 2ten zeichen ausgegeben wird oder wie?</p>
</blockquote>
<p>Ab dem dritten. +0 ist erstes, +1 ist zweites, +2 ...</p>
<p>mosta schrieb:</p>
<blockquote>
<p>2.das -2 weißt auf nichts zurück deswegen keine ausgabe?</p>
</blockquote>
<p>Es gibt kein zzz[-2], deshalb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> undefiniertes Verhalten. Was dies in C++ bedeutet, dazu sollte es genug Lektüre im Netz geben. Selbst hier im Forum gibts dazu etliche Beiträge.</p>
<p>mosta schrieb:</p>
<blockquote>
<p>3.keine Ahnung was, beim ersten oder +1 passiert <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>+1 heisst nichts anderes als &quot;addiere 1&quot;. Dazu nochmal der Hinweis, schau dir Zeigerarithmetik an.</p>
<p>mosta schrieb:</p>
<blockquote>
<p>4.wie soll ich das -1 verstehen.</p>
</blockquote>
<p>Seiteneffekte der ersten Ausgabe beachten.</p>
<p>Da du wahrscheinlich mit anderen Antworten gerechnet hast, hier mal ein kurzes Beispiel. Danach solltest du aber versuchen, selbst etwas zu denken.</p>
<pre><code class="language-cpp">// 3.
zz           // = {z+4,z+3,z+2,z+1,z}
zz[3]        // = z+1                 // = {&quot;OPEL&quot;, &quot;MAZDA&quot;, &quot;AUDI&quot;, &quot;TOYOTA&quot;}
zz[3]+1      // = z+1+1               // = {&quot;MAZDA&quot;, &quot;AUDI&quot;, &quot;TOYOTA&quot;}
*(zz[3]+1)   // = (zz[3]+1)[0]        // = &quot;MAZDA&quot;
*(zz[3]+1)+1 // = &quot;AZDA&quot;
</code></pre>
<p>edit:<br />
Hinweis von CStoll bzgl. Seiteneffekten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/966160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/966160</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 16 Jan 2006 11:26:20 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Sat, 14 Jan 2006 09:59:43 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>mosta schrieb:</p>
<blockquote>
<p>3.keine Ahnung was, beim ersten oder +1 passiert <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>+1 heisst nichts anderes als &quot;addiere 1&quot;. Dazu nochmal der Hinweis, schau dir Zeigerarithmetik an.</p>
</blockquote>
<p>Am anfang steht er auf der dritten position und die +1 beudeutet das er ab dem zweiten zeichen ausgibt nur was passiert beim letzten +1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/966179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/966179</guid><dc:creator><![CDATA[mosta]]></dc:creator><pubDate>Sat, 14 Jan 2006 09:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Sat, 14 Jan 2006 10:30:59 GMT]]></title><description><![CDATA[<p>Das letzte +1 bedeutet doch, dass er ab dem zweiten Zeichen ausgibt. Würde da zB nur</p>
<pre><code class="language-cpp">*(zz[3]+1)
</code></pre>
<p>stehen, würde &quot;MAZDA&quot; ausgegeben werden.<br />
Und *<em>(zz[3]+1)</em> ist nunmal ein Zeiger, welcher auf das erste Zeichen von &quot;MAZDA&quot; verweist. Wird dieser Zeiger inkrementiert (+1), dann verweist er entsprechend auf das zweite Zeichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/966195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/966195</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 14 Jan 2006 10:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Mon, 16 Jan 2006 09:37:56 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>mosta schrieb:</p>
<blockquote>
<p>2.das -2 weißt auf nichts zurück deswegen keine ausgabe?</p>
</blockquote>
<p>Es gibt kein zzz[-2], deshalb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> undefiniertes Verhalten. Was dies in C++ bedeutet, dazu sollte es genug Lektüre im Netz geben. Selbst hier im Forum gibts dazu etliche Beiträge.</p>
</blockquote>
<p>zzz ist ein Zeiger, da gibt es durchaus ein zzz[-2] (das ist gleichbedeutend mit *(zzz-2)) - du mußt nur darauf achten, daß dieses Element nicht außerhalb des Arrays liegt, über das du läufst.</p>
<p>Ansonsten ein Tip - setz ein paar Klammern entsprechend dem Operator-Vorrang und werte die Ausdrücke von innen nach außen aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967762</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 16 Jan 2006 09:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Mon, 16 Jan 2006 09:58:33 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>zzz ist ein Zeiger, da gibt es durchaus ein zzz[-2]</p>
</blockquote>
<p>Nein, gibt es nicht. zzz ist ein Zeiger auf das erste Element von zz. Praktisch genau dieser Zeiger, zu dem zz in einem Zeigerkontext umgewandelt wird. Und vor dem ersten Element gibt es nichts, auf was wir zugreifen dürfen. Somit liefert zzz[-2] undefiniertes Verhalten. Punkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967781</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 16 Jan 2006 09:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Mon, 16 Jan 2006 10:02:57 GMT]]></title><description><![CDATA[<p>Deswegen auch:</p>
<p>CStoll (off) schrieb:</p>
<blockquote>
<p>du mußt nur darauf achten, daß dieses Element nicht außerhalb des Arrays liegt, über das du läufst.</p>
</blockquote>
<p>(und zzz zeigt an dieser Stelle nicht mehr auf den Anfang des Arrays, da die erste Anweisung einige Seiteneffekte hatte).</p>
<p>OK, genauer: zzz[-2] ist nicht &quot;per Definition&quot; verboten, aber es kann zu undefiniertem Verhalten führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967785</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 16 Jan 2006 10:02:57 GMT</pubDate></item><item><title><![CDATA[Reply to geht sowas? on Mon, 16 Jan 2006 11:19:34 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>und zzz zeigt an dieser Stelle nicht mehr auf den Anfang des Arrays, da die erste Anweisung einige Seiteneffekte hatte.</p>
</blockquote>
<p>Ja, das stimmt. Da zzz lediglich inkrementiert wird, liefert zzz[-2] aber immer noch undefiniertes Verhalten. <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/967855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967855</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 16 Jan 2006 11:19:34 GMT</pubDate></item></channel></rss>