const与指针
Posted 锅里煮水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const与指针相关的知识,希望对你有一定的参考价值。
一、指向常量的指针
定义:const 变量类型 *变量;
例如
const double pi=3.14;///////pi是个常量,它的值不能改变
double *ptr=π//////错误:ptr是一个普通指针,可以改变ptr所指对象的值,而pi是个常量
const double *cptr=π/////正确:cptr指向一个双精度常量
*cptr=42;//////错误:*cptr指向的是常量,不能给*cptr赋值
注意:指针的类型必须与其所指对象的类型一致,但是有两个例外。第一种例外情况是允许指向常量的指针指向一个非常量对象:
double dval=3.14;
cptr=&dval;/////正确:但是不能通过cptr改变dval的值
和常量引用一样,指向常量的指针也指向一个变量。仅仅要求不能通过该指针改变对象的值,而没有规定那个对象的值不能通过其他方式改变。
二、常量指针
定义:变量类型 *const 变量名;
例如
int errNumb=0;
int * const curErr=&errNumb;/////curErr将一直指向errNumb
const double pi=3.14;
const double * const pip=π/////pip是一个指向常量对象的常量指针
注意:常量指针必须初始化,而且一旦初始化完成,则它的值(也就是存放在指针中的那个地址)就不能再改变。
以上是关于const与指针的主要内容,如果未能解决你的问题,请参考以下文章