const限定符(三)

const和指针结合一般可以产生两种类型的指针,一种是指向常量的指针,一种是指针本身就是常量,称之为常量指针。

指向常量的指针

类似引用,指针的类型必须具有其所指向的对象的类型相同,但有一个例外:即允许一个指向敞亮的指针指向一个非常量对象,那么就不允许通过该指针修改其指向的非常量对象的值:

doble dval = 3.14;
const double *cptr = &dval;        //不能通过cptr修改dval的值
常量指针

不同于引用的是,指针本身就是对象,而引用不是对象,所以指针本身可以是常量,且常量指针必须初始化,且初始化之后不允许修改:

int errNum = 0;
int *const curErr = &errNum;    //curErr将一直指向errNum
const double pi = 3.14;  
const double *const pip = π  //pip是一个指向常量对象的常量指针

对象的定义是有基本数据类型和声明符组成的,对于复合类型的定义应当从右往左看

你可能感兴趣的:(const限定符(三))