What does this mean **&a in C++ : <p>What is different between two fucntions bellow?</p>

<pre><code>void init1(int **&amp;a, int n)
{
    a = new int *[n];
    for (int i = 0; i&lt;n; i++)
        a[i] = new int [n];
}
</code></pre>

<p>and</p>

<pre><code>void init1(int **a, int n)
{
    a = new int *[n];
    for (int i = 0; i&lt;n; i++)
        a[i] = new int [n];
}
</code></pre>

<p>Thanks,</p>
