1、const char* , char const * , char * const 之间的关系
const char * p: p是一个指向常量字符的指针。指针所指的对象不能通过*p去改变(可以通过其他方式改变,与指针p无关),但是指针本身是可以改变的,也就是p可以去指向其他的char对象。p所指对象可以是常量的,也可以是非常量的,也就是常量的地址必须用指向常量的指针来存放,但是指向常量的指针可以存放常量或者非常量的地址。
char const * p : 和上面是一样的,表示的是一个指向常量的指针,不可通过*p来改变所指的对象。
char * const p : p是一个常量指针,自身所存放的指向对象的地址不可改变,指向的对象可以是常量也可以是非常量。常量指针必须初始化,不可二次改变。
2、 const char * 怎么定义与初始化呢?
const char * p : p是一个指向字符常量的指针,p里面存放的是字符常量的地址。
下面我们来看一个例子,我们想初始化一个const char *p:
const char* p1 = "abc";