返回

c++const限定符

发布时间:2023-02-08 21:23:47 267

希望定义一种变量,他的值不能被改变,使用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)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线