有三种不同的方法来说明const变量,其作用和含义都是不同的。
第一式:将const放在指针变量的类型之前。表示指针变量所指向的数据是一个常量,即不能改变指针变量所指向的数据值,但可以改变指针变量的值。
int x, y;
const int *p = &x;
*p = 24; // ERROR
p = &y; // OK
第二式:将const放在指针变量的*后。表示指针变量的值是一个常量,即不能改变指针的值,但可以改变指针变量所指向的数据值。
int n, i;
int *const p = &n;
*p = 25; // ok
*p = &i; // error
第三式:把一个const放在指针变量的类型之前,将另一个const放在指针变量的*后。表示指针变量的值是一个常量,指针变量所指向的数据也是一个常量。二者都不能改变。
int j, k;
const int *const pp = &j;
*pp = 25; // error
pp = &k; // error
const类型的指针主要用做函数的参数,以限制在函数体内不能修改指针变量的值,或不能修改指针所指向的数据值。
评论