<?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[2 simple fragen]]></title><description><![CDATA[<p>hallo zusammen</p>
<p>2 simple fragen.</p>
<p>1. pointer:<br />
ich habe mir gerade folgenden artikel durchgelesen:<br />
<a href="http://www.codeproject.com/KB/cpp/pointers.aspx" rel="nofollow">http://www.codeproject.com/KB/cpp/pointers.aspx</a></p>
<p>wenn ich nun bspw folgende funktion habe:</p>
<pre><code class="language-cpp">static void Foo(int &amp;myInt);
</code></pre>
<p>Wenn ich innerhalb dieser Funktion</p>
<pre><code class="language-cpp">*myInt = 3
</code></pre>
<p>mache, ändert sich die Variable ja auch ausserhalb.<br />
bei</p>
<pre><code class="language-cpp">myInt = 3
</code></pre>
<p>ändert sie sich nicht, ist das so richtig?</p>
<p>wie kann ich einem WORD (unsigned short int) einen Binärwert zuweisen?<br />
in ADA würde dies ja folgendermassen aussehen:</p>
<p>var := 2#0000_0000_1110_1000#;</p>
<p>- oniwa</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271498/2-simple-fragen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 10:24:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271498.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Jul 2010 13:27:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:27:07 GMT]]></title><description><![CDATA[<p>hallo zusammen</p>
<p>2 simple fragen.</p>
<p>1. pointer:<br />
ich habe mir gerade folgenden artikel durchgelesen:<br />
<a href="http://www.codeproject.com/KB/cpp/pointers.aspx" rel="nofollow">http://www.codeproject.com/KB/cpp/pointers.aspx</a></p>
<p>wenn ich nun bspw folgende funktion habe:</p>
<pre><code class="language-cpp">static void Foo(int &amp;myInt);
</code></pre>
<p>Wenn ich innerhalb dieser Funktion</p>
<pre><code class="language-cpp">*myInt = 3
</code></pre>
<p>mache, ändert sich die Variable ja auch ausserhalb.<br />
bei</p>
<pre><code class="language-cpp">myInt = 3
</code></pre>
<p>ändert sie sich nicht, ist das so richtig?</p>
<p>wie kann ich einem WORD (unsigned short int) einen Binärwert zuweisen?<br />
in ADA würde dies ja folgendermassen aussehen:</p>
<p>var := 2#0000_0000_1110_1000#;</p>
<p>- oniwa</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933570</guid><dc:creator><![CDATA[oniwa]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:27:07 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:36:01 GMT]]></title><description><![CDATA[<p>Kurze Antwort:<br />
1. nein, nicht richtig<br />
2. ist nicht direkt in der Syntax vorgesehen</p>
<p>Lange Antwort:</p>
<p>1. Du hast Pointer leider nicht verstanden. <code>int &amp;myInt</code> definiert nicht etwa ein Pointer sondern eine Referenz. Ein Pointer wäre <code>int *myInt</code> . Aber selbst dann ist dir offenbar das Konzept hinter Pointern nicht richtig klar. <code>myInt</code> und <code>*myInt</code> sind völlig andere Sachen, das eine ist der Pointer selbst, das andere das Objekt, auf das er zeigt. Mit nach außen ändern oder nicht hat das nichts zu tun.</p>
<p>2. Am einfachsten kommst du wohl, wenn du die Literale (es geht ja sowieso nur um Literale) einfach umrechnest (so viele werden es ja nicht sein). Ansonsten gibt es z.B. bei <a href="http://www.boost.org/doc/libs/1_43_0/libs/utility/utility.htm" rel="nofollow">boost::utility</a> das Makro <code>BOOST_BINARY</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933575</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:40:14 GMT]]></title><description><![CDATA[<p>oniwa schrieb:</p>
<blockquote>
<p>hallo zusammen</p>
<p>2 simple fragen.</p>
<p>1. pointer:<br />
ich habe mir gerade folgenden artikel durchgelesen:<br />
<a href="http://www.codeproject.com/KB/cpp/pointers.aspx" rel="nofollow">http://www.codeproject.com/KB/cpp/pointers.aspx</a></p>
<p>wenn ich nun bspw folgende funktion habe:</p>
<pre><code class="language-cpp">static void Foo(int &amp;myInt);
</code></pre>
<p>Wenn ich innerhalb dieser Funktion</p>
<pre><code class="language-cpp">*myInt = 3
</code></pre>
<p>mache, ändert sich die Variable ja auch ausserhalb.<br />
bei</p>
<pre><code class="language-cpp">myInt = 3
</code></pre>
<p>ändert sie sich nicht, ist das so richtig?</p>
</blockquote>
<p>Beides falsch. Bei <code>*myInt=3</code> würdest du den Wert von myInt nicht ändern, sondern den Wert auf den myInt zeigt. Da myInt aber hier kein Zeiger ist, wird dies gar nicht erst compilieren. Bei <code>myInt=3</code> würdest du die Variable auch außerhalb ändern, denn myInt ist eine Referenz. Kann es sein, dass du hier Referenzen und Zeiger durcheinanderwirfst? Denn wenn der funktionskopf so aussähe: <code>static void Foo(int *myInt);</code> , dann würden deine Aussagen stimmen. <code>*myInt=3</code> würde dann den Wert der Variable ändern, auf die myInt zeigt. Und <code>myInt=3</code> würde bloß den Wert des Zeigers auf 3 setzen, was die Variable auf die er vorher gezeigt hat unbeeeinflusst lässt aber insegesamt nicht viel Sinn macht.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Ich empfehle dir, dir aber erst einmal Referenzen anzugucken. Das ist leichter zu verstehen und sie leisten fast genau das gleiche wie Pointer.</p>
<blockquote>
<p>wie kann ich einem WORD (unsigned short int) einen Binärwert zuweisen?<br />
in ADA würde dies ja folgendermassen aussehen:</p>
<p>var := 2#0000_0000_1110_1000#;</p>
</blockquote>
<p>Als Literal gar nicht. Du könntest dir zwar leicht eine Funktion zum Umrechnen schreiben (mit Templates sogar während der Compilezeit), aber einfacher wäre es wohl, einfach <code>var = 232;</code> zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933578</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:40:01 GMT]]></title><description><![CDATA[<p>Salute,</p>
<p>nochmal zur 1. Frage.</p>
<p>Dass ich mit &amp; eine Referenz angebe, ist mir schon klar.<br />
Nur, mit * sollte ich dann doch auf den Speicherbereich zeigen..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933579</guid><dc:creator><![CDATA[oniwa]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:40:01 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:45:59 GMT]]></title><description><![CDATA[<p>zu 1:</p>
<pre><code>*myint = 3;
</code></pre>
<p>Ändert den Integerwert der Variablen auf die myint zeigt. (Dereferenzieren)</p>
<pre><code>myint = 3;
</code></pre>
<p>Wird dir wahrscheinlich einen Compilererror einbringen da Du einem Zeiger nicht einen int wert zuweisen kannst.... Zeiger braucht eine Adresse.</p>
<p>zu 2:</p>
<p>Du kannst einen Hexwert zuweisen:</p>
<pre><code>myshort = 0x00e8;
</code></pre>
<p>gruß muli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933580</guid><dc:creator><![CDATA[muli]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:42:28 GMT]]></title><description><![CDATA[<p>oniwa schrieb:</p>
<blockquote>
<p>Salute,</p>
<p>nochmal zur 1. Frage.</p>
<p>Dass ich mit &amp; eine Referenz angebe, ist mir schon klar.<br />
Nur, mit * sollte ich dann doch auf den Speicherbereich zeigen..?</p>
</blockquote>
<p>Ich verstehe die Frage nicht. Was soll zeigen? Du? Und auf welchen Speicherbereich?</p>
<p>Ich entnehme der Frage, dass du vermutlich weder Referenzen noch Pointer verstanden hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933582</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:42:28 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 13:46:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">unsigned long aDec = std::bitset(&quot;0000000011101000&quot;).to_ulong();
</code></pre>
<p>Ist aber ein Overkill.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933587</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 29 Jul 2010 13:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to 2 simple fragen on Thu, 29 Jul 2010 18:29:37 GMT]]></title><description><![CDATA[<p>oniwa schrieb:</p>
<blockquote>
<p>Salute,</p>
<p>nochmal zur 1. Frage.</p>
<p>Dass ich mit &amp; eine Referenz angebe, ist mir schon klar.<br />
Nur, mit * sollte ich dann doch auf den Speicherbereich zeigen..?</p>
</blockquote>
<p>Eine Referenz benutzt du genauso wie eine normale Variable. Du KANNST sie nicht dereferenzieren. Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void change(int &amp;y)
{
    y = 5;
}

int main()
{
    int x = 3;
    change(x);    
    //weil hier eine Referenz genommen wird ist y effektiv die gleiche Variable wie x
    // (bzw. zeigt auf x aber du musst nix machen)
    //und daher wird die 5 auch in x gesetzt
    cout &lt;&lt; x &lt;&lt; endl;   //und hier wird dann auch 5 ausgegeben.
}
</code></pre>
<p>Nehmen wir das gleiche mit Pointern:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void change(int *y)  //hier Pointer!!
{
    *y = 5;   //du musst die 5 an die Adresse schreiben, auf die y zeigt
    //y = (int*)5 würde dazu führen, dass y auf das 5. Byte im Speicher zeigt und das is Blödsinn
}

int main()
{
    int x = 3;
    change(&amp;x);    //hier musst du die Adresse angeben, bei der Referenz nicht   
    //so und hier passiert dann das gleiche
    //und daher wird die 5 auch in x gesetzt
    cout &lt;&lt; x &lt;&lt; endl;   //und hier wird dann auch 5 ausgegeben.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1933684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933684</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Thu, 29 Jul 2010 18:29:37 GMT</pubDate></item></channel></rss>