Constant Pointer: It means that the address that the pointer is pointing to cannot be changed. Consider this

char str[] = "Hello";
char * const ptr = &str;
           
In the above two statements first an array of char has been created called str then in the next statement a char pointer has been created ptr which points to str. Since prt is a constant pointer it can only point to str. i.e if something writed like ptr = &str1. the compiler will flag an error because change the contents of pointer ptr cannot be changed though the contents of string str can be change;
If a pointer is pointing to a constant whose value(constant)can't be changed.
Eg:Consider the declaration int a[10];
here a is a pointer to the base address of the array say 1000.When try to modify  a value say a++ or a-- it will give error because a is a constant pointer to the array

Pointer to Constant: It simply means that the string is constant and the pointer is not constant. Now the contents of pointer can be change but not that of string through the use of pointer.

char str[] = "Hello";
const char * ptr = &str;
char str1[] = "World"
*(ptr+2) = 't'  //error constant pointer cannot be used to modify      string
ptr = &str1
                          If a pointer doesn't to points to any variable,array,structure,object,structure,etc...such pointer is known as pointer constant.
Eg:The well known example for pointer constant is the predefine Macro NULL.
NULL is a pointer constant which doesn't to points to any thing. 
Example:

void Foo( int       *       ptr,
          int const *       ptrToConst,
          int       * const constPtr,
          int const * const constPtrToConst )
{
    *ptr = 0; // OK: modifies the pointee
    ptr  = 0; // OK: modifies the pointer

    *ptrToConst = 0; // Error! Cannot modify the pointee
    ptrToConst  = 0; // OK: modifies the pointer

    *constPtr = 0; // OK: modifies the pointee
    constPtr  = 0; // Error! Cannot modify the pointer

    *constPtrToConst = 0; // Error! Cannot modify the pointee
    constPtrToConst  = 0; // Error! Cannot modify the pointer
}