Why we can't use &(*a) but can achieve it using typedef?
<p>I'm novice at C++, and I want to understand the difference between the examples below. </p>

<p>We can't create function</p>

<pre><code>void someFunc(int &amp;*a){
    int *b=new int; //just for example
    a=b;
}
</code></pre>

<p>but using typedef</p>

<pre><code>typedef int* pint;

void someFunc(pint &amp;a){
    int *b=new int; //just for example
    a=b;
}
</code></pre>

<p>everything is alright.</p>

<p>Is it just a compiler trick, or is the reason for such behavior more complicated?</p>
