常量指针和指针常量

    使用一个指针时涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明应const“预先固定”将使那个对象而不是使这个指针成为常量。要讲指针本身而不是被指对象声明为常量。我们必须使用声明运算符*const,而不能简单的使用const。举例:

 1 void fl(char *p)
 2 {
 3     char s[] = "Gold";
 4     const char *pc = s;   //指向常量
 5     pc[3] = 'g';               //错误。pc指向常量
 6     pc = p;                    //正确。指针不是常量
 7 
 8     char *const cp = p;       //常量指针
 9     cp[3] = 'g';                    //正确.指向对象不是常量
10     cp = p;                         //错误。指针是常量
11 }

    定义常量指针的声明运算符是*const。并没有const*声明符,所以出现在*之前的const是作为基础类型的一部分。例如:

1     char *const cp;             //到char的const指针
2     const char *cp;            //到const char的指针
3     char const *cp;            //到const char的指针
原文地址:https://www.cnblogs.com/hwm520hlf1314/p/3461004.html