有三种不同的方法来说明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类型的指针主要用做函数的参数,以限制在函数体内不能修改指针变量的值,或不能修改指针所指向的数据值。

评论