<?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 als Referenz]]></title><description><![CDATA[<p>Abend,</p>
<p>Ich versuche gerade C++ zu lernen und habe folgendes Problem, dass ich nicht selber Lösen kann:</p>
<pre><code class="language-cpp">void SpielfeldErstellen(short &amp;r_sFeldgroesse, char &amp;r_chSpielfeld[30][30])
{
	//Erstelle Spielfeld...
}
</code></pre>
<p>Wie kann ich &quot;r_chSpielfeld&quot; als Referenz übergeben?<br />
Wenn ich das so wie in diesem Beispiel(oder so ähnlich) versuche, spuckt g++ folgendes aus:</p>
<pre><code>Deklaration von »r_chSpielfeld« als array of references
</code></pre>
<p>Ist es überhaupt möglich mit Referenzen auf Arrays zu verweisen? (ist dieser Satz richtig formuliert?)</p>
<p>Ich weiß, dass es eine ziemliche Anfängerfrage ist, aber ich kann leider bei Googel nichts finden.<br />
Kann mir bitte jemand helfen?</p>
<p>drxt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203737/array-als-referenz</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 19:03:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203737.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Jan 2008 20:43:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 20:43:17 GMT]]></title><description><![CDATA[<p>Abend,</p>
<p>Ich versuche gerade C++ zu lernen und habe folgendes Problem, dass ich nicht selber Lösen kann:</p>
<pre><code class="language-cpp">void SpielfeldErstellen(short &amp;r_sFeldgroesse, char &amp;r_chSpielfeld[30][30])
{
	//Erstelle Spielfeld...
}
</code></pre>
<p>Wie kann ich &quot;r_chSpielfeld&quot; als Referenz übergeben?<br />
Wenn ich das so wie in diesem Beispiel(oder so ähnlich) versuche, spuckt g++ folgendes aus:</p>
<pre><code>Deklaration von »r_chSpielfeld« als array of references
</code></pre>
<p>Ist es überhaupt möglich mit Referenzen auf Arrays zu verweisen? (ist dieser Satz richtig formuliert?)</p>
<p>Ich weiß, dass es eine ziemliche Anfängerfrage ist, aber ich kann leider bei Googel nichts finden.<br />
Kann mir bitte jemand helfen?</p>
<p>drxt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443716</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 20:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 20:57:57 GMT]]></title><description><![CDATA[<p>Nachtrag aus Frust:<br />
*grrrrr* Methoden, Klassen, Vererbung etc. habe ich alle relativ einfach verstanden (was nat. nicht heißt, dass ich mit ihnen richtig umgehen kann), aber diese dummen Arrays machen mir extrem Probleme...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443721</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 20:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 20:59:43 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ein Array wird immer als Referenz an eine Funktion übergeben, d.h. Das Referenzzeichen im Funktionskopf darf nicht gesetzt werden. Desweitern darf in der ersten eckigen Klammer nichts drinstehen, in der zweiten muss jedoch ein Wert stehen, dass der compiler die zeilen zu einer spalte zuweisen kann.<br />
Das ganze müsste dann folgendermaßen aussehen:</p>
<pre><code class="language-cpp">void SpielfeldErstellen(short &amp;r_sFeldgroesse, char r_chSpielfeld[][30])
{
    //Erstelle Spielfeld...
}
</code></pre>
<p>anon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443722</guid><dc:creator><![CDATA[anon]]></dc:creator><pubDate>Fri, 25 Jan 2008 20:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:08:27 GMT]]></title><description><![CDATA[<p>Danke anon.<br />
Was ich aber nicht genau verstehe: Warum muss der Compiler den 2 Wert in den []-Klammern kennen und den ersten nicht?<br />
(Compiler sagt: &quot;Ej, ich muss genau wissen wieviele Zeilen es sind, aber wieviele Spalten es sind ist mir scheißegal&quot; &lt;- so stelle ich mir das mit meiner blühenden Fantasie vor, klingt für mich aber unlogisch...)</p>
<p>PS: Könnt ihr mir ein gutes C++-Buch empfehlen, dass auch über die reinen Grundlagen hinaus nützlich ist. Ich habe hier zwar ein Anfängerbuch liegen, aber dass liefert mir z.B. in diesem Fall keine Antwort auf mein Problem. Ich brauche also eine Art Nachschlagewerk.</p>
<p>drxt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443730</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:21:04 GMT]]></title><description><![CDATA[<p>Neuer Nachtrag (Gott bin ich heute fleißig):<br />
Ich habe gerade das openbook C von A bis Z von Galileo Computing gefunden.<br />
Kann ich dieses Buch bedenkenlos als Nachschlagewerk benutzen? Bzw. gleicht sich C und C++ so weit, dass die Sprachen bis auf die Objektorientierung vpn C++ gleich sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443739</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:30:37 GMT]]></title><description><![CDATA[<p>C und C++ gleichen sich nicht wirklich, und vorallem sollte man nicht beides vermischt benutzen.</p>
<p>z.B. funktioniert die Speicherallokation anders in C und C++, auch existieren in C++ sogenannte Streams um z.B. etwas auf die Konsole auszugeben.</p>
<p>Allerdings kann man bei jedem c++ compiler auch C benutzen, da auch diese Headerdateien vorhanden sind.</p>
<p>mfg Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443747</guid><dc:creator><![CDATA[__stefan_]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:36:51 GMT]]></title><description><![CDATA[<p>anon schrieb:</p>
<blockquote>
<p>Servus,</p>
<p>ein Array wird immer als Referenz an eine Funktion übergeben, d.h. Das Referenzzeichen im Funktionskopf darf nicht gesetzt werden. Desweitern darf in der ersten eckigen Klammer nichts drinstehen, in der zweiten muss jedoch ein Wert stehen, dass der compiler die zeilen zu einer spalte zuweisen kann.</p>
</blockquote>
<p>nein und nein. Arrays können nicht direkt kopiert werden, deshalb können sie nicht per-value übergeben werden. Falls ein ein Parameter (formal) als Array deklariert wird (die erste Dimension darf fehlen, muss aber nicht), wird diese Deklaration implizit umgewandelt in eine Deklaration, die einen Zeiger deklariert (der auf die Elemente des Arrays zeigt, deshalb ist die erste Dimension belanglos). Das bedeutet nicht, dass Arrays Zeiger wären, sondern eben nur, dass in diesem speziellen Kontext eine Deklaration, die wie eine Arraydeklaration aussieht, eine Zeigerdeklaration ist.</p>
<pre><code class="language-cpp">void foo(int x[3][42]);
void foo(int x[4][42]);
void foo(int x[][42]);
void foo(int (*x)[42];
</code></pre>
<p>deklarieren ein und dieselbe Funktion. Diese Deklarationen sind austauschbar und man könnte etwa eine Form im Header und eine andere bei der Definition benutzen (natürlich ist das schlechter Stil).</p>
<p>Referenzen sind keine Objekte, deshalb gibt es auch keine Arrays aus Referenzen.<br />
Arrays sind Objekte und man kann Referenzen auf jeden Objekttyp bilden. Wenn wir eine Referenz auf ein Array deklarieren wollen, müssen wir allerdings die &quot;Deklaratorpräzedenz&quot; (meine Wortschöpfung) beachten und Klammern einsetzen (oder typedefs benutzen):</p>
<pre><code class="language-cpp">int (&amp;x)[3][42];
</code></pre>
<p>Eine Referenz auf ein Array aus 3 x 42 ints.<br />
z.B.</p>
<pre><code class="language-cpp">void SpielfeldErstellen(short &amp;r_sFeldgroesse, char (&amp;r_chSpielfeld)[30][30]);
</code></pre>
<p>Um C++ zu lernen, benutze man ein Buch über C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443751</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:39:14 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a><br />
Deine Erklärung muss ich als Anfänger noch nicht verstehen oder :p ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443753</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:43:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Um C++ zu lernen, benutze man ein Buch über C++</p>
</blockquote>
<p>Hehe, ja du hast völlig recht. Nur sind leider nicht alle Bücher gleichgut und ich würde gerne einen Tipp für ein GUTES Buch kriegen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443757</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 21:46:25 GMT]]></title><description><![CDATA[<p>drxt schrieb:</p>
<blockquote>
<p>Danke für eure Hilfe.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a><br />
Deine Erklärung muss ich als Anfänger noch nicht verstehen oder :p ?</p>
</blockquote>
<p>Vorausgesetzt, du hast verstanden, dass anons Beitrag falsch ist (abgesehen von der zweiten Hälfte des zweiten Satzes).<br />
Wichtig ist erst einmal nur:<br />
1. Referenzen auf Arrays sind möglich<br />
2. Bei komplizierten Typdeklaration (und die Deklaration einer Referenz auf ein Array dürfte darunter fallen) benutzt du am besten typedefs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443758</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 25 Jan 2008 21:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Referenz on Fri, 25 Jan 2008 22:32:54 GMT]]></title><description><![CDATA[<p>Ok, danke...*achselzucken* mehr habe ich im Moment nicht zu sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443794</guid><dc:creator><![CDATA[drxt]]></dc:creator><pubDate>Fri, 25 Jan 2008 22:32:54 GMT</pubDate></item></channel></rss>