const修饰指针包括三种:
1. 常量指针:const int * p;
顾名思义,常量的指针,所以指针指向可以变,然指向的数据是常量,不能变。记法:常量(const)指针(int *).
1 int main() 2 { 3 int a=10, b=20; 4 5 //常量指针,常量的指针 6 //指针的指向可以修改,但指向的数据(即常量)不可以修改 7 const int * p1 = &a; 8 // *p1 = b; //错误,修改指向的常量 9 p1 = &b; //正确,修改的是指针的指向 10 11 system("pause"); 12 return 0; 13 }
2. 指针常量:int * const p;
指针常量听名字也是“指针是常量”,因此指针的指向是不能改的,指向的数据可以修改。记法:指针(int *)常量(const).
1 int main() 2 { 3 int a=10, b=20; 4 5 //常量指针,常量的指针 6 //指针的指向可以修改,但指向的数据(即常量)不可以修改 7 int * const p1 = &a; 8 *p1 = b; //正确,修改指向的常量 9 // p1 = &b; //错误,修改的是指针的指向 10 11 system("pause"); 12 return 0; 13 }
3. const既修饰变量又修饰指针:const int * const p;
这样修饰的指针和指向的数据都是常量,不能修改。