<?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[Formatierung von Speicheradressen durch cout]]></title><description><![CDATA[<p>Hi,</p>
<p>ich lerne gerade C++ und habe mal ein wenig mit cout und Zeigern herumprobiert, bin dabei dann auf Verhalten gestossen das ich mir nicht so recht erklären kann.<br />
Wenn ich mir einen int definiere und den dann mitsamt Adresse über cout ausgebe, verhält sich alles wie ich es erwarte, also:</p>
<pre><code class="language-cpp">int *a = new int(10);
cout &lt;&lt; *a &lt;&lt; &quot;@&quot; &lt;&lt; a &lt;&lt; &quot;\n&quot;;
</code></pre>
<p>...ergibt wie erwartet etwas wie</p>
<blockquote>
<p>10@0012FFC1</p>
</blockquote>
<p>wenn ich das gleiche dann aber mit nem char probiere:</p>
<pre><code class="language-cpp">char *b = new char('x');
cout &lt;&lt; *b &lt;&lt; &quot;@&quot; &lt;&lt; b &lt;&lt; &quot;\n&quot;;
</code></pre>
<p>...wird mir die Adresse auch in chars ausgegeben, also in etwa so</p>
<blockquote>
<p>x@x²²²²usw</p>
</blockquote>
<p>Hat jemand eine Erklärung für mich?<br />
Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230042/formatierung-von-speicheradressen-durch-cout</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 14:44:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230042.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Dec 2008 14:31:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Formatierung von Speicheradressen durch cout on Fri, 19 Dec 2008 14:31:37 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich lerne gerade C++ und habe mal ein wenig mit cout und Zeigern herumprobiert, bin dabei dann auf Verhalten gestossen das ich mir nicht so recht erklären kann.<br />
Wenn ich mir einen int definiere und den dann mitsamt Adresse über cout ausgebe, verhält sich alles wie ich es erwarte, also:</p>
<pre><code class="language-cpp">int *a = new int(10);
cout &lt;&lt; *a &lt;&lt; &quot;@&quot; &lt;&lt; a &lt;&lt; &quot;\n&quot;;
</code></pre>
<p>...ergibt wie erwartet etwas wie</p>
<blockquote>
<p>10@0012FFC1</p>
</blockquote>
<p>wenn ich das gleiche dann aber mit nem char probiere:</p>
<pre><code class="language-cpp">char *b = new char('x');
cout &lt;&lt; *b &lt;&lt; &quot;@&quot; &lt;&lt; b &lt;&lt; &quot;\n&quot;;
</code></pre>
<p>...wird mir die Adresse auch in chars ausgegeben, also in etwa so</p>
<blockquote>
<p>x@x²²²²usw</p>
</blockquote>
<p>Hat jemand eine Erklärung für mich?<br />
Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1632907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1632907</guid><dc:creator><![CDATA[Hackfresser]]></dc:creator><pubDate>Fri, 19 Dec 2008 14:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Formatierung von Speicheradressen durch cout on Fri, 19 Dec 2008 15:07:34 GMT]]></title><description><![CDATA[<p><code>std::ostream</code> (also die Klasse von <code>std::cout</code> ) besitzt mehrere Überladungen von <code>operator&lt;&lt;</code> . Eine davon ist für Zeiger (da wird die Adresse ausgegeben), eine ist speziell für Zeiger auf <code>char</code> , da <code>char*</code> oft als String benutzt wird.</p>
<p>Wenn du an die Adresse kommen willst, kannst du das beispielsweise über <code>reinterpret_cast</code> machen:</p>
<pre><code class="language-cpp">std::cout &lt;&lt; reinterpret_cast&lt;void*&gt;(b) &lt;&lt; std::endl;
</code></pre>
<p><code>void*</code> ist ein nicht typisierter Zeiger, der einfach eine Adresse speichert, ohne den Typ des Speicherinhalts dahinter zu kennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1632930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1632930</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 19 Dec 2008 15:07:34 GMT</pubDate></item></channel></rss>