As far as I know, in some contexts, an array is converted into a pointer to its first element:
int a[5];
int * p;
p = a;
Following this approach and considering I can assign an array to a pointer, why can't I assign a bidimensional array to a pointer to a pointer?
int a[5][5];
int ** q;
q = a;
However, I can assign an array of pointers to a pointer to a pointer:
int * p[5];
int ** q;
q = p;
If an array is converted into a pointer to its first element, when q = a happens in the second example, a should be a pointer to a[0] and a[0] should be a pointer to a[0][0], right?
Besides, I don't get an error if I do:
cout << **a;
Thanks in advance and I hope you can help me to understand.