希望定义一种变量,他的值不能被改变,使用const限定符,定义const对象时必须初始化。
const int buf = 1024;
const对象只在文件内有效。如果有多个文件需要访问某个const对象,需要在每个文件中都定义一次const对象,这样在多个文件中出现了同名的const变量。某些时候它的初始值不是一个常量表达式,但又必要在多个文件中共享,需要使用extern。
f.h
extern const int buf;
extern const int buf = fcn();
声明需要使用extern,定义和初始化处也需要extern。
把引用绑定到const对象上称为对常量的引用。
const int ci = 1024;
const int &r1 = ci;
引用类型必须与其所引用对象的类型一致,但有个例外。
在初始化常量引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。
int i = 1;
const int &r1 = i;
const int &r2 = 1;
但是不能通过r1来修改i的值。
指针也有指向常量的指针
const int pi = 1;
const int *cp = π
允许修改cp的值,但是不能通过cp来修改pi的值。·
常量指针定义时必须初始化。
int i = 1;
int const p = &i;
把放到const前面就是常量指针,指针p只能指向i,不能再指向其他对象,但是可以修改i的值
const int *const pip = &i;
pip既不能指向其他对象,也不能修改i的值。
标签:const,常量,int,c++,对象,extern,限定符,指针 From: https://blog.51cto.com/u_3764469/6038276