const限定符
定义一种变量,它的值不会被改变
const int bufsize = 512;//输入缓冲区大小
//把bufsize定义成了常量,任何试图为bufsize赋值的行为都会报错
bufsize=512;//错误:试图向const对象赋值
因为const对象一旦创建其值无法改变,所以const对象必须初始化
初始值可以是任意表达式
const int i = get_size();
const int j=42;
const int k;//错误,k是一个未经初始化的常量
利用一个对象去初始化另外一个对象,是不是const都没事
int i=42;
const int ci=i;//i的值被拷贝给了ci
int j=ci;//ci的值被拷贝给了j
//拷贝一个对象的值并不会改变它
如果想在多个文件之间共享const对象,必须在变量定义前添加extern关键字
引用与const
初始化常量引用引用时允许用任意表达式作为初始值,只要结果能转化的引用类型即可
int i=42;
const int &r1=i;
const int &r2=42;
const int &r3=r1*2;
int &r4=r1*2;//错误:r4是一个普通的非常量引用,不能对常量进行引用
int i=42;
int &r1=i;//引用r1绑定对象i
const int &r2=i;//r2也绑定对象i,但不能通过r2去修改i的值
r1=0;//r1并非常量,i的值改为0
r2=0;//错误:r2是一个常量引用