p2 is a pointer to a constant "Mary"
p2 can change to point to another constant string, but you can't change the value "May" thru p2.
p1 is a constant pointer to "John"
p1 can't change, but you can change "John" thru p1.
Thanks, I got it now; very clarifying example