const限定符:把变量定义成一个常量
1.使用const对变量的类型加以限定,变量的值不能被改变
1
2
|
const int bufSize=512; //输入缓冲区大小 bufSize=512; //错误 因为有等号试图向const对象写值 |
2.const对象必须初始化(其他时候不能出现在等号左边)
1
2
3
4
5
|
const int i=get_size(); //正确 运行时初始化 const int j=33; //正确 编译时初始化 const int k; //错误 没有初始化 const int bb=0; void *a=bb; //正确 在编译的时候 会把bb编译为常量0 const类型编译时按照常量处理 |
3.默认情况下const对象仅在文件内有效 想在多个文件内共享const对象 必须在变量定义之前加extern关键字
1
|
extern const int bufSize=fcn(); |
4.const的引用:对常量的引用
1
2
3
4
5
6
7
8
9
|
const int ci=1024; const int&r1=ci; //正确 引用及其绑定的对象都是常量 r1=42; //错误 试图修改常量 int &r2=ci; //错误 存在改变const的风险 int i=33; const int&r1=i; //正确 不可以通过r1对i进行修改 i依然可以通过其他途径修改 const int&r2=33; //正确 const int&r3=r1*2; //正确 此处 int &r3=r1*2; //错误 不能用非常量引用指向一个常量 |
5.指针和const
指向常量的指针
1
2
3
4
5
6
|
const doublenpi=3.14; double *ptr=π //错误 const double *cptr=π *cptr=3; //错误 double dval=3.14; cptr=&dval; //正确 但不能通过cptr修改dval的值 |
const指针:指针是对象,也可以限定为常量(必须初始化)
把*放在const之前,说明指针是一个常量,不变的是指针本身的值而非指向的那个值
1
2
3
4
5
6
7
8
9
|
int errNumb=0; int * const curErr=&errNumb; const double pi=3.14159; const double * const pip=π //指向常量的常量指针 *pip=2.71; //错误 试图修改常量pip if (*cureRR){ errorHandler(); *curErr=0; //正确 试图修改变量erNumb } |
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/courage_lizy/article/details/121969254