I know that in C++, the name of an array is just the pointer to the first element of the array. For example:
int foo[5];
=> foo is a pointer of type int, and it points to the first element in the array, which is a[0]
But then, we have this:
int (*foo)[5]
Here, foo is a pointer to an array of type. So is foo a pointer to a pointer (of type int)?