Here p is a 1darray of pointers
Yep, and you can use the subscript operator ptr[index]
with pointers which is equivalent to *(ptr + index)
Thus p[1][0]
is the same as *(p[1] + 0)
which is the same as *(p[1])
Also your code does not compile for several reasons including void main()
Simple example to illustrate:
int main()
{
const char *hello = "hello";
const char *world = "world";
const char *array[2] = {hello, world};
char e = hello[1]; // char e now contains 'e'
e = array[0][1]; // same thing as previous line
char r = world[2]; // char r now contains 'r'
r = array[1][2]; // same thing as previous line
}