Относительно следующего фрагмента кода для создания динамического массива
template <class Type>
void Make2DArray(Type** &x,int rows, int cols)
{ x=new Type*[rows];
for (int i=0;i<rows;i++) x[i]=new Type[cols];
}
Как понять использование типа ** & x, почему у него два **