Both of those examples are the same. It defines a type of X
as a pointer to pointer to double.
An array is a continuous fragment of memory that you access by pointer to it's first element. If you have an array of arrays then type of it is 'whatever element type is'**
.
For example strings are arrays of chars, terminated by '\0' byte. So array of string is of type char**
Example usage is really common thing, main()
function, that can be declared as follows
int main(int argc, char** argv)
so argv
is an array of strings that are arguments or your program, argc
is its' length.