the &(*a) operation in c++, counter-intuitive?
<p>in this code:</p>

<pre><code>  int* a;
  int* b;
  int c;
  int* d;
  a=new int(5);
  b=&amp;(*a);
  c=*a;
  d=&amp;c;
  cout&lt;&lt;"*a = "&lt;&lt;*a&lt;&lt;endl;
  cout&lt;&lt;"a = "&lt;&lt;a&lt;&lt;endl;
  cout&lt;&lt;"b ="&lt;&lt;b&lt;&lt;endl;
  cout&lt;&lt;"d = "&lt;&lt;d&lt;&lt;endl;
</code></pre>

<p>I get:</p>

<pre><code>*a = 5
 a = 0x83a2008
 b =0x83a2008
 d = 0xbfbfe540
</code></pre>

<p>why is d different from b? Aren't they both &amp;(*a) ? how can I get the d result with a single line?</p>

<p>Thanks a lot.</p>
