<?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[Array: Pointer oder [idx] schneller?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich welches von beiden schneller ist , oder ob beides gleich ist:</p>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++, arr++)
   *arr = 9;
</code></pre>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++)
   arr[i] = 9;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/189406/array-pointer-oder-idx-schneller</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 08:59:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189406.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Aug 2007 17:07:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Sun, 12 Aug 2007 17:07:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich welches von beiden schneller ist , oder ob beides gleich ist:</p>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++, arr++)
   *arr = 9;
</code></pre>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++)
   arr[i] = 9;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1343248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343248</guid><dc:creator><![CDATA[testo]]></dc:creator><pubDate>Sun, 12 Aug 2007 17:07:42 GMT</pubDate></item><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Sun, 12 Aug 2007 21:15:17 GMT]]></title><description><![CDATA[<p>beides führt gleich schnell zu einem absturz (NULL dereferenziert)</p>
<p>der code sollte in etwa gleich schnell sein,<br />
fals du die NULL gegen ein echtes array austauschst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343371</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Sun, 12 Aug 2007 21:15:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Sun, 12 Aug 2007 21:41:56 GMT]]></title><description><![CDATA[<p>Es könnte sein, dass ein Inkrement pro Durchlauf schneller ist als eine Addition. Es könnte auch sein, dass das rausoptimiert wird. Es könnte bei konstantem len auch sein dass die Schleife wegoptimiert wird. Es könnte aber auch...</p>
<p>Am besten: In der konkreten Situation benchmarken (rein designtechnisch würde ich einen Zeiger bevorzugen, da er sich wie ein Iterator verhält, und wir ja schließlich im C++-Board sind :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343386</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 12 Aug 2007 21:41:56 GMT</pubDate></item><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Mon, 13 Aug 2007 02:35:32 GMT]]></title><description><![CDATA[<p>Verwende das was logisch besser passt.<br />
Wenn du den Umgang mit Iterator Ranges gewohnt bist verwende Zeiger, wenn du den Umgang mit Indizes gewohnt bist verwende einen Index.<br />
Wenn schon Zeiger würde ich es aber eher so machen:</p>
<pre><code class="language-cpp">int * arr = ...;
int* end = arr + len;
for(int* p = arr; p != end; p++)
   *p = 9;
</code></pre>
<p>Davon abgesehen: der Compiler wird wie schon erwähnt wurde sowieso *irgendwas* draus machen. Wenn man den schnellstmöglichen Code sucht muss man testen was schneller ist. Ansonsten sollte man sich keine Gedanken darüber machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343430</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 13 Aug 2007 02:35:32 GMT</pubDate></item><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Mon, 13 Aug 2007 07:19:30 GMT]]></title><description><![CDATA[<p>testo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++)
   arr[i] = 9;
</code></pre>
</blockquote>
<p>vermutlich das, weil keine zusatzaddition vorhanden ist, <em>(arr+i)=9; wird als ein befehl auf einem x86 compiliert, sowas wie mov DWORD[eax+EDX</em>4],9</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343472</guid><dc:creator><![CDATA[rapsoo]]></dc:creator><pubDate>Mon, 13 Aug 2007 07:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array: Pointer oder [idx] schneller? on Mon, 13 Aug 2007 08:48:01 GMT]]></title><description><![CDATA[<p>testo schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich frage mich welches von beiden schneller ist , oder ob beides gleich ist:</p>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++, arr++)
   *arr = 9;
</code></pre>
<pre><code class="language-cpp">int * arr = NULL;
for(int i = 0; i &lt; len; i++)
   arr[i] = 9;
</code></pre>
</blockquote>
<p>Das kommt darauf an, welchen Compiler, welches Betriebssystem, welchen Prozessor, welche Compileswitches und wie die Caches gerade gefüllt sind und ob die Sonne scheint. Und vor allen Dingen solltest Du Dir überlegen, ob das überhaupt relevant ist. Verwende das, was lesbarer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343544</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 13 Aug 2007 08:48:01 GMT</pubDate></item></channel></rss>