<?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>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>int* foo(int value)<br />
{<br />
static int arr[2];<br />
arr[0]=value;<br />
arr[1]=-value;<br />
return arr;<br />
}</p>
<p>int main()<br />
{<br />
int* p=foo(7);<br />
cout&lt;&lt;p[0]&lt;&lt;'\n'&lt;&lt;p[1]&lt;&lt;'\n';<br />
}<br />
In diesem teil zeigt der Zeiger *p auf die funktion foo(int value) ,<br />
und in dem Zweiten Teil soll p[0] ausgegeben werden , doch wie soll man p[0] ausgeben wenn es gar nicht in der funktion foo ist , es gibt kein parameter p[0] nur arr[0] oder wie soll dass gehen ???<br />
Danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134586/zeiger</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 20:35:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134586.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Jan 2006 08:41:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 08:41:00 GMT]]></title><description><![CDATA[<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>int* foo(int value)<br />
{<br />
static int arr[2];<br />
arr[0]=value;<br />
arr[1]=-value;<br />
return arr;<br />
}</p>
<p>int main()<br />
{<br />
int* p=foo(7);<br />
cout&lt;&lt;p[0]&lt;&lt;'\n'&lt;&lt;p[1]&lt;&lt;'\n';<br />
}<br />
In diesem teil zeigt der Zeiger *p auf die funktion foo(int value) ,<br />
und in dem Zweiten Teil soll p[0] ausgegeben werden , doch wie soll man p[0] ausgeben wenn es gar nicht in der funktion foo ist , es gibt kein parameter p[0] nur arr[0] oder wie soll dass gehen ???<br />
Danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/977611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/977611</guid><dc:creator><![CDATA[KOKOKOLKOK]]></dc:creator><pubDate>Fri, 27 Jan 2006 08:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 08:55:13 GMT]]></title><description><![CDATA[<p>arr ist ein statisches Array und lebt deshalb außerhalb deiner Funktion (allerdings kann es nur in der Funktion unter diesem Namen angesprochen werden) - die Funktion liefert einen Zeiger auf arr zurück, den du unter dem Namen p speicherst und problemlos dereferenzieren kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/977622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/977622</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 27 Jan 2006 08:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 08:57:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int
*foo (int value)
{
  static int arr[2];

  arr[0]= value;
  arr[1]=-value;

  return arr;
}

int
main ()
{
  int *p=foo(7);

  cout&lt;&lt;p[0]&lt;&lt;'\n'&lt;&lt;p[1]&lt;&lt;'\n';
}
</code></pre>
<p>ehrlich gesagt, ich verstehe die frage nicht. falls du wissen willst, wie es sein kann, daß in main() mit p[0] und p[1] der inhalt von arr[] ausgegeben werden kann: in c++ sind arrays eigentlich zeiger. arr ist eigentlich ein int* auf zwei im speicher aufeinanderfolgende ints. und dieser zeiger wird von foo() zurückgegeben und p zugewiesen. daß der speicher von arr nach verlassen von foo() überhaupt noch gültig ist (normalerweise werden lokale variablen beim verlassen der funktion ja gelöscht), liegt daran, daß arr als static deklariert ist. das hat zur folge, daß arr wie eine globale variable angelegt wird, nur mit dem unterschied, daß sie wie eine lokale variable ausschließlich in foo() sichtbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/977626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/977626</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Fri, 27 Jan 2006 08:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 09:25:52 GMT]]></title><description><![CDATA[<p>Ja so was in der Art habe ich gemeint , kannst es mir ein bisschen bildlicher erklären dass mit , dem dass ein array ein zeiger auf int ist . UNd noch was , wenn ich also</p>
<pre><code>int *p=foo(parameter)
</code></pre>
<p>schreibe , dann greift mein Zeiger immer auf die variablen die in foo deklariert sind zu , oder wie sieht dass aus ???<br />
Und wenn dasss stimmt wie kann ich dann wählen auf welche variable ich zugreifen soll .<br />
Danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/977646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/977646</guid><dc:creator><![CDATA[KOKOKOLLKOK]]></dc:creator><pubDate>Fri, 27 Jan 2006 09:25:52 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 09:37:31 GMT]]></title><description><![CDATA[<p>KOKOKOLLKOK schrieb:</p>
<blockquote>
<p>UNd noch was , wenn ich also</p>
<pre><code>int *p=foo(parameter)
</code></pre>
<p>schreibe , dann greift mein Zeiger immer auf die variablen die in foo deklariert sind zu , oder wie sieht dass aus ???</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Und wenn dasss stimmt wie kann ich dann wählen auf welche variable ich zugreifen soll .</p>
</blockquote>
<p>Indem du in der Funktion angibst, welche Adresse zurückgegeben wird:</p>
<pre><code class="language-cpp">int* foo(int value, bool larr)
{
  static int sh[2];
  static int ln[4];
  if(larr)
  {
    ln[0]=value;ln[1]=value/2;ln[2]=-value/2;ln[3]=-value;
    return ln;
  }
  else
  {
    sh[0]=value;sh[1]=-value;
    return sh;
  }
}
</code></pre>
<p>(bei &quot;p=foo(x,true);&quot; bekommst du das 4-elementige Array ln, bei &quot;p=foo(x,false);&quot; das 2-elementige sh)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/977653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/977653</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 27 Jan 2006 09:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 22:06:37 GMT]]></title><description><![CDATA[<p>Wenn man einen zeiger<br />
int *p=foo(parameter), macht dann zeigt der zeiger auf die variablen der funktion foo .<br />
Doch was passiert wenn man eine funktion deklariert und zwar so :<br />
int *foo(parameter)<br />
{<br />
..<br />
}<br />
, sagen wir mal es zeigt auf ürgend was , auf was zeigt es dann , ( könnt ja eure beispiele einsetzen )<br />
Bitte um erklärung . Wenn eine funktion ein zeiger ist , oder so ?????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978561</guid><dc:creator><![CDATA[Lightninig]]></dc:creator><pubDate>Fri, 27 Jan 2006 22:06:37 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Fri, 27 Jan 2006 23:23:33 GMT]]></title><description><![CDATA[<p>Lightning schrieb:</p>
<blockquote>
<p>sagen wir mal es zeigt auf ürgend was , auf was zeigt es dann</p>
</blockquote>
<p>also, jetzt verstehe ich die frage beim besten willen nicht mehr <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>versuche bitte, dich klarer auszudrücken.</p>
<p>p enthält den zeiger, den die funktion foo per return-befehl zurückgegeben hat. in der funktion foo(), die du gepostet hast, ist der rückgabewert ein zeiger auf arr, weil foo() den den zeiger auf arr per return zurückgibt. p zeigt nicht automatisch auf die funktion oder deren variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978599</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Fri, 27 Jan 2006 23:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sat, 28 Jan 2006 17:29:56 GMT]]></title><description><![CDATA[<p>Ach so , also ein Zeiger er zeigt immer auf einen rückgabe wert der funktion , und da eine funktion ( in den meisten fällen ) , einen rückgabe wert hat , wird p in diesem falle auf arr zeogen . Doch meine zweite frage ist , also nicht abhängigi von diesem Fall , wenn eine funktion so deklariert wird</p>
<pre><code>int *foo()
{
...
}
</code></pre>
<p>Auf was zeigt dann der zeiger foo() , alsoi jetzt ist eine funktion ein Zeiger .<br />
Auf was kann er jetzt zeigen ???????????????????<br />
Das wäre meine haupt frage <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="🙂"
    /><br />
Lightning</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979066</guid><dc:creator><![CDATA[KOKOLOKO]]></dc:creator><pubDate>Sat, 28 Jan 2006 17:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sat, 28 Jan 2006 18:20:31 GMT]]></title><description><![CDATA[<p>Also wie geht dass nun ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979115</guid><dc:creator><![CDATA[KOKOLOKOLO]]></dc:creator><pubDate>Sat, 28 Jan 2006 18:20:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sat, 28 Jan 2006 18:42:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei deinem Beispiel gibt es keinen &quot;zeiger foo()&quot;. foo ist eine Methode, die einen Zeiger auf ein int zurückliefert (und das int existiert hoffentlich noch nach Verlassen der Methode). Wie das mit dem zurückliefern funktioniert, hat ja CStoll bereits ausführlich gezeigt.</p>
<p>Ansonsten hier einiges an Literatur:<br />
<a href="http://tutorial.schornboeck.net/zeiger.htm" rel="nofollow">http://tutorial.schornboeck.net/zeiger.htm</a><br />
<a href="http://www.pronix.de/pronix-623.html" rel="nofollow">http://www.pronix.de/pronix-623.html</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-124532-and-start-is-0.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-124532-and-start-is-0.html</a></p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979140</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sat, 28 Jan 2006 18:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sat, 28 Jan 2006 20:16:43 GMT]]></title><description><![CDATA[<p>Wie jetzt also , ist *foo(), kein zeiger sondern eine methode wie in einer klasse, doch was ist in *foo() ein zeiger, einer ihrer variablen oder parameter oder iwe geht dass ??<br />
THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979264</guid><dc:creator><![CDATA[Lightning***]]></dc:creator><pubDate>Sat, 28 Jan 2006 20:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sun, 29 Jan 2006 00:39:12 GMT]]></title><description><![CDATA[<p>KOKOLOKO schrieb:</p>
<blockquote>
<p>alsoi jetzt ist eine funktion ein Zeiger</p>
</blockquote>
<p>da hast du was falsch verstanden. int *foo() bedeutet, daß der <strong>rückgabewert</strong> der funktion einzeiger ist. und was für einen wert die funktion zurückgibt, bestimmt das programm in der funktion per return-befehl.</p>
<p>wenn du eine variable per int *foo deklarierst, dann ist foo ein zeiger auf ein int. wenn du eine funktion per int *foo() deklarierst, dann ist foo() immer noch genauso eine funktion wie int foo(), nur daß sie alstelle eines int eben einen int* zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979477</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sun, 29 Jan 2006 00:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger on Sun, 29 Jan 2006 20:17:25 GMT]]></title><description><![CDATA[<p>Ach so jetzt habe ich es verstanden , danke noch mals<br />
Lightning <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/980404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/980404</guid><dc:creator><![CDATA[Lightning*]]></dc:creator><pubDate>Sun, 29 Jan 2006 20:17:25 GMT</pubDate></item></channel></rss>