1.常量指针
const int *p=&a;
特点:指针的指向(地址)可以改,但是指针指向的值不可以改。
*p=20;错误
p=&b;正确
2.指针常量
int *const p=&a;
特点:指针的指向不可以改,指针指向的值可以改。
*p=20;正确
p=&b;错误
3.const 既修饰指针又修饰常量。
const int *const p3=&a;
特点:指针的指向和指针的值都不可以修改。
巧记方法:
1.const为常量,p为指针,然后我们看const int *p=&a;
为常量加指针的形式,所以为常量指针,然后int *const p=&a;
就为指针加常量的形式所以叫指针常量。
2.常量指针const后面为p,则对*p的操作就不可取;指针常量const后面为常量,则对常量的操作就不可取。
int a = 10;
int b = 10;
//const修饰的是指针,指针指向可以改,指针指向的值不可以更改 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; //错误
system("pause");