使用一个指针时涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明应const“预先固定”将使那个对象而不是使这个指针成为常量。要讲指针本身而不是被指对象声明为常量。我们必须使用声明运算符*const,而不能简单的使用const。举例:
void fl(char *p)
{
char s[] = "Gold";
const char *pc = s; //指向常量
pc[3] = 'g'; //错误。pc指向常量
pc = p; //正确。指针不是常量
char *const cp = p; //常量指针
cp[3] = 'g'; //正确.指向对象不是常量
cp = p; //错误。指针是常量
}
定义常量指针的声明运算符是*const。并没有const*声明符,所以出现在*之前的const是作为基础类型的一部分 。例如:
char *const cp; //到char的const指针
const char *cp; //到const char的指针
char const *cp; //到const char的指针