有三种方法来定义const 型指针:
(1)const <类型> *<指针变量名>;
该语句的作用是:定义指针变量所指数据值为常量,即:指针变量所指数据值不能改变,但指针变量值可以改变。例如:
float x,y;
const float *p=&x; //定义指针变量p所指数据值*p为常量
*p=25; //错误,p所指变量x数据值不能用*p形式进行改变
p=&y; //正确,可改指针变量p的值
x=25; //正确,变量x的值可以改变
(2)<类型> * const <指针变量名>;
该语句的作用是:定义指针变量值为常量,即:指针变量值不能改变,但指针变量所指数据值可以改变。例如:
float x,y;
float * const p=&x; //定义指针变量p的值为常量
*p=25; //正确,p所指变量x数据值可以用*p形式进行改变
p=&y; //错误,指针变量p的值不能改变
用这种形式定义的指针变量,必须在定义时赋初值。
(3)const <类型> * const <指针变量名>;
该语句的作用是:定义指针变量值为常量,指针变量所指数据值为常量。即:指针变量值不能改变,指针变量所指数据值也不能改变。例如:
float x,y;
const float * const p=&x; //定义指针变量p为常量
*p=25; ` //错误,p所指变量x数据值不能用*p形式进行改变
p=&y; //错误,不能改变指针变量p的值
用这种形式定义指针变量,必须在定义时赋初值。
注意:
(1)因为引用变量类同于指针变量,所以这三种定义形式完全适应于引用类型变量。
(2)定义const类型指针的目的是提高程序的安全性,用const 可限制程序随意修改指针值。
(3)const 指针主要用作函数参数,以限制在函数体不能修改指针变量的值,或不能修改指针变量所指数据值。