控制变化的const
const 这个关键字是用来控制变量是否可以变化的
const 与基本数据类型
int x=3;//变量
变量名 | 存储地址 | 存储内容 |
---|---|---|
x | &x | 3 |
const int x=3;//常量,x无法更改
变量名 | 存储地址 | 存储内容 |
---|---|---|
x | &x | 3 (不可改变) |
const 与指针类型
const int *p =NULL;//等价于 int const *p = NULL;
//此时const修饰的是 *p ,不可以通过指针改变对应变量的值
int x = 3;
const int *p =&x;
//p=&y; 正确
//*p = 4;错误 不可以通过*p来修改指针指向的值
变量名 | 存储地址 | 存储内容 |
---|---|---|
x | &x | 3 |
p | &p | &x |
int *const p =NULL; ---------此时修饰p ,指针指向的地址不可以改变
int x = 3;
int *const p =&x;
//p=&y; 错误
变量名 | 存储地址 | 存储内容 |
---|---|---|
x | &x | 3 |
p | &p | &x (不可改变) |
const 与引用
int x = 3;
const int &y = x;
//x = 10; 正确
//y = 20; 错误
const 示例
const int x = 3; int *y = &x; //错误,指针指向不可改变的值,用*y改变x的值有风险
int x = 3;const int *y = &x; //正确 x有可读可写的权限,指针y只有可读权限
注意:用const要注意用权限小的指针,去指向权限大的变量,总之不能让计算机产生风险