const修饰指针有三种情况:
1、const修饰指针-------常量指针:
int a=10; const int *p=&a;
特点:指针的指向可以修改,但是指针指向的值不可以修改。
int a=10,b=100; const int *p=&a; //常量指针指向的值不能改会报错 *p=50;//报错 //指针的指向可以修改 p=&b; //不会报错,此时*p的值输出为100
2、const修饰常量-------指针常量:
int a=10; int *const p=&a;
特点:指针的指向不能修改,指针指向的值可以修改
int a=10,b=100; int *const p=&a; //指针常量的指向不能够修改,修改会报错 p=&b;//报错 //指针常量指向的值可以修改 *p=50;//不会报错,此时*p的值为50
3、const即修饰指针,又修饰常量:
int a=10; const int *const p=&a;
特点:指针的指向和指针指向的值都不能修改
int a=10,b=100; const int *const p=&a; //指针指向的值和指针的指向都不能改 *p=50;//报错 p=&b;//报错