一. 前言
有时我们希望定义这样一种变量,它的值不能被改变。 例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉的缓冲区大小不再合适时,很容易对其进行调整。另一方面,也应随时警惕防止程序一不小心改变了这个值。为了解决问题,我们引入const关键字。
二. 用法
2.1 修饰常量
//常量的值不允许被修改
int temp = 5;
const int b = 3;
//变量 "c" 需要初始值设定项
//const int c;
// 常量b 的值不能被修改
// b = 4;
// 常量不接受 输入操作
//cin >> b;
小结:如果是一个被const关键字修饰的变量
1. 那么它是不能被更改值
2. 需要赋予初始值
3. 不接受输入操作
2.2 修饰指针
const char *pContent;
const char* pCont;
// const 修饰指针
int hour = 24;
int time = 12;
//const 在*号左边,那么它封锁 *p是常量,那么*p中的值就是一个常量,无法在改变了
const int *p = &hour;
cout<< "指针变量 p 指向的地址为:"<< p <<endl;
p = &time;
//报错: 分配只读位置'*p'
// *p = 100;
cout<< "指针变量 p 改变后的指向的地址为:"<< p <<endl;
//总结: Const在 * 左边: 那意味着 p所指得地址中的值是不能更变的, p的地址可以修改
//*p所指地址中的值不能被改变
// *p = 300;
const int *p1 = &hour;
p1 = &time;
// 第二种情况,如果 const 在*号右边,那么封锁修饰的就是 指针变量p2 那么它的地址就是固定的,不能在赋值
// 但是可以修改指定地址中的内容
int* const p2 = &time;
*p2 = 13;
//赋予新地址会报错
//p2 = &hour;
cout << "p2 地址: " << p2 << endl;
总结:沿着*号划一条线,看const 在*号 左边还是右边
1. const在 *号左边: 那意味着 p所指得地址中的值是不能更变的, p的地址可以修改
2. const在 *号右边,那么封锁修饰的就是 指针变量p2 那么它的地址就是固定的,不能再赋值
1207

被折叠的 条评论
为什么被折叠?



