const关键字(其本身依旧是一个变量)
C++ 中使用const修饰时,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。但根据具体情况,其指向的值可以进行修改(通过指针)
1.常量指针
const int* p
特点:指针的指向可以修改,但是指针指向的值不可以修改
例:
const int* p=&a;
p=&b;(正确,指向可以进行修改)
*p=10;(错误,指向的值不可以修改)
2.指针常量
int* const p
特点:指针的指向不可以修改,指向的值可以修改
例:
int* const p=&a
*p=10;(正确,指向的值可以进行修改)
p=&b;(错误,指向不可以修改)
3.即修饰指针,也修饰常量
const int* const p
特点:指针的指向喝指向的值都不可以进行修改
*p=10;(错误)
p=&b;(错误)
4.const int
特点:在定义时就进行赋值,可以用指针进行修改
const int a = 10;
int* p;
p = &a;
*p = 20;