`*` dereferences a pointer. It turns a pointer into a value.
`&` is the address operator. It turns a value into a pointer.
`*` and `&` are inverses of each other, like `+` and `-`.
So, `*&` cancels out, and `*&*p` is just `*p`.
and `*p` dereferences the `char*` and turns it into `char`, and you see the first character.