指针常量,本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量,常量指针,本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。
常量指针,也就是本质是指针,什么样的指针呢,常量类型的指针,什么叫常量类型的指针呢,回忆一下函数指针,指向函数地址的指针,那么常量指针,就是指向常量类型地址的指针,比如const int * p。
而指针常量,本质是常量,什么类型的常量,指针类型的常量,为了能够有个术语结构上的对比,你肯定知道整型常量,也知道是这么定义的:const int a;但指针常量,是这么定义的 : int * const a;const 在 *前面,是常量指针,const在*后面,是指针常量。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址,要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区,从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型,这是指针本身所具有的类型,当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。