Suppose we have that the following 2-dimensional array:
int multi[3][3];
As I understand it, we can then say that multi
is a "pointer to a pointer", or -- at the very least -- we can do something like the followiong:
int **p_p_int = multi;
Question: Why don't we say that multi
is a "pointer to a pointer to a pointer to pointer", since multi
points towards the address of its first element, which itself points to a pointer, which points towards the address of multi[0][0]
, which itself points to the value of multi[0][0]
.
This seems to be 4 objects that point (here I'm counting addresses as pointers).
Now you might say "but addresses aren't pointers, even though pointers can equal addresses", in which case it also seems weird to say that a 2-dimensional array is a "pointer to a pointer", since it's actually a pointer to an address to a pointer to an address (to a value).
I feel like I have mananaged to confuse myself quite a bit here :)