Check the sizes
char **(v[0x04]);
char *(b[0x04]);
char ***p;
sizeof(p)
sizeof(*p)
sizeof(**p)
sizeof(***p)
sizeof(b)
sizeof(*b)
sizeof(**b)
sizeof(v)
sizeof(*v)
sizeof(**v)
sizeof(***v)
sizeof(char)
sizeof(short)
sizeof(int)
sizeof(float)
sizeof(double)
sizeof(char*)
sizeof(char**)
sizeof(char***)

Allocate a block of memory for n bytes
char b[n];

Assign an address
char *b = ("abc123");
// An address of the first letter 'a' on character string "abc123"
// would be assigned to pointer b.

About the difference between arrays and pointers when viewed from another angle
auto signed char a[0x0A];
auto signed char *b;

b = a;
printf("&a: %p\n",&a);
printf(" a: %p\n",a);
printf(" b: %p\n",b);
printf("&b: %p\n",&b);