const修饰指针有三种情况:
1. const修饰指针 --常量指针
const int * p = &a;
指针的指向可以修改,但是指针指向的值不可以改。
记忆技巧:const 后接*p,表示指针所指向的值不能修改。
2.const修饰常量 --指针常量
int * const p = &a;
指针的指向不可以改,但是指针指向的值可以改。
记忆技巧:const 后接 p,表示指针的指向不能更改,p代表地址。
3.const即修饰指针,又修饰常量
const int * const p = &a;
指针的指向和指针指向的值都不可以修改。
int main()
{
int a = 10;
int b = 10;
//contst修饰的是指针,指针指向可以改,指针指向的值不可以更改
const int * p1 = &a;
p1 = &b; //正确
//*p1 = 100; 报错
//const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int * const p2 = &a;
//p2 = &b; 错误
*p2 = 100; //正确
//const既修饰指针又修饰常量
const int * const p3 = &a;
//p3 = &b; 错误
//*p3 = 100; 错误
return 0;
}