<span style="font-size:18px;">const char* p;//1
char* const p = a;//2
char* p = "abc";//3</span>
第一句定义了一个常量指针,即指向一个常量的指针,指向的内容是常量,不可修改,放在常量区的,但是指针本身可以修改,即“*p=‘b’”是非法的,*p是p指向的常量的第一个字符,是个常量,不能改变。“p=&q”是可以的,指针可以指向 不同的地址。
第二句定义了一个指针常量,即指针本身是一个常量,不可修改,但指针指向的内容可以修改,一开始定义时让它指向数组a,“*p=‘b’”是可以的,但是“p=&b”是非法的。
第三句中“char *p”定义的是一个指针变量p,指向字符串abc的首地址。