0
点赞
收藏
分享

微信扫一扫

c++const限定符

希望定义一种变量,他的值不能被改变,使用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的值。

举报

相关推荐

0 条评论