What does " int (*get_2d_array(void))[3] " function declaration in following code mean? : <pre><code>int (*get_2d_array(void))[3]    //This Function
{
    static int arr[2][3] = { 10, 20, 30, 40, 50, 60 };
    return arr;
}


int main()
{

int i, j, row = 2, col = 3;
int (*ptr)[col];

ptr = get_2d_array();

for( i = 0; i &lt; row; i++ )
{
    for( j = 0; j &lt; col; j++ )
    {
        printf("%d ",ptr[i][j]);
    }
    printf("\n");
} 
    return 0;
}
</code></pre>

<p>This function is declared like an array, can anybody explain this type of declaration.</p>

<p>The function output is that it prints the array returned by the function called.</p>
