二、const修饰指针(常量指针)
2.1 const修饰指针,常量指针:指针的指向可以修改,但是指针指向的值不可以修改
int a = 10;
int b = 20;
int * p = &a;
//const 修饰
const int * p = &a;
//错误
*p = 20; //指向的的值不能修改
//正确
p = &b; //指向可以修改
2.2 const修饰常量,指针常量:指针的指向不可以改,但是指针指向的值可以修改
int * const p = &a;
//正确
*p = 20; //指向得值可以修改
//错误
p = &b; //指向不能修改
2.3 const既修饰指针又修饰常量,指针的指向或者指向的值都不能修改
const int * const p = &a;
//错误
*p = 20; //指向得值不可以修改
//错误
p = &b; //指向不能修改
记忆技巧:
*
表示指针,
const位置在*
前面则叫常量指针,意味着*p
被限定了不能更改,p
可以更改;
const位置在*
后面,则叫指针常量,意味着p
被限制了不能更改,*p
可以更改;
const在*
前后都有则,都不能被修改;