Pascal pointer notation was so logical. Dereferencing a pointer was just a caret to the right of the variable.
A double pointer was just two carets. And so on.
There was a struct symmetry about the whole thing. C broke that, especially with strict pointers.