const修饰符 小结

1. const 和extern
默认状态下const对象仅在文件内有效
当编译器以初始化的方式定义一个const对象时,编译器将在编译过程中吧用到该变量的地方都替换成对应的值,
为了执行上述替换,编译器必须知道变量的初始值,所以通常const的有效域就在本文件
为了能在其他文件中使用该const变量 可以使用 extern 修饰符
例://file_1.cc
extern const int bufsize= fcn();//或者extern const int bufsize=10
//file _1.h
extern const int bufsize;
2.const的引用
当把引用绑定到const对象上时,即对常量的引用,该引用不能修改它所绑定的对象

3.指针和const
指向常量的指针:不能用来改变其所指向对象的值
const double   pi = 3.14;
double *ptr = &pi//error普通指针不能接受常量指针
const double *cptr = pi// cptr 可以指向双精度常量
*cptr =42 // error不能给 *cptr赋值
const指针:指针是常量 必须初始化   指针保存的地址不能更改
int * const p;

3.顶层const与底层const
顶层const表示 :指针本身就是常量
底层const表示 :指针指向的对象是一个常量

4.const 在函数前和const在函数后的区别
const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。
如果返回值为某个对象为const或某个对象的引用为const   ,则返回值具有const属性,则返回实例只能访问类a中的公有数据成员和const成员函数,并且不允许对其进行赋值操作,这在一般情况下很少用 到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值