1. Constant pointer
Definition and use of pointer variables that point to constants
such as: const int *p;
2. Pointer constants
such as: char* const p = "ABCDE";
You can understand this:
The type char* of the const p, so p can not be modified. That is, the p must have been initialized at the time of definition and cannot be modified.
3. Pointer constants pointing to constants
Pointer constants pointing to constants
such as: const int* Const P = &b;
You can understand that.
int* the type of const P is const, then the int* const p is not modifiable.
And look at int* const p. The type of const p is int*, which is that p cannot be modified, and its type is int*.
Summarize:
No matter how the name of the pointer changes, it should be divided into a view. Start at the very beginning, layer by layer, and look at these names with the "Type-object" perspective.