Dereferencing array address does not work?
<p>Considering the following code:</p>

<pre><code>int myArray [3] = {1, 2, 3};

std::cout &lt;&lt; myArray &lt;&lt; "\n"; // 0x22ff24
std::cout &lt;&lt; &amp;myArray &lt;&lt; "\n"; // 0x22ff24
std::cout &lt;&lt; *myArray &lt;&lt; "\n"; // 1
std::cout &lt;&lt; *(&amp;myArray) &lt;&lt; "\n"; // 0x22ff24
</code></pre>

<p>Why does the bottom statement not give 1, like the 3rd statement? If myArray is equal to &amp;myArray, why is *myArray not equal to *(&amp;myArray)?</p>