你只需要记住下面这句话就可以了:
**将变量定义式从右往左翻译为英文,其中的"*"译为pointer to **
下面开始实践。
-
常量指针 / 指向常量的指针(Pointer to Constant)
这种指针不能通过它修改所指向的字符内容,但指针本身可以指向其他地址。
const char* p1;
p1 is a pointer to char const.
p1是一个指针,它指向字符型常量。 -
指针常量 / 指针类型常量 / 常指针(Constant Pointer)
这种指针本身的值(指向的地址)不能改变,但可以通过它修改所指向的内容(如果所指向的不是常量)。
char* const p2;
p2 is a const pointer to char.
p2是一个常指针,它指向字符型(变量)。 -
指向常量的指针常量(Constant Pointer to Constant)
这种指针既不能通过它修改所指向的内容,指针本身也不能指向其他地址。
const char* const p3;
p3 is a const pointer to char const.
p3是一个常指针,它指向字符型常量。