C++学习--const限定符

一,const概念:如果希望定义一种值不能被改变的变量可以用关键字const对变量加以限定:const int buffsize = 512;
因为const对象一旦创建后其值无法改变,所以const对象必须初始化,当然也可以是任意复杂的表达式;
1),主要限制就是只能在const类型的对象上执行不改变其内容的操作。
2),默认状态下,const对象仅在文件内有效。如果希望这类const对象像其他对象一样工作,就是说只在一个文件中定义const,而在其他多个文件中声明并使用它。解决办法就是:对于const变量不管是声明还是定义都添加extern关键字,这样只需定义一次就可以:extern coonst int buffSize = fcn();
1,const 的引用
可以把引用绑定在const对象上,称之为对常量的引用

const int ci = 1024;
const int &r1 = ci;

1)对const的引用可能引用一个并非const的对象。常量引用仅对引用可参与的操作做出了限定,对于引用的对象本身是不是一个常量未做限定。

int i = 42;
int &r1 = i;//引用r1绑定对象i
const int &r2 = i;//r2也绑定对象i,但是不允许通过r2修改i的值
r1 = 0;//r1并非常量,i的值修改为0
r2 = 0;//错误,r2是一个常量引用

2,指针和const
与引用一样,也可以令指针指向常量或者非常量。指向常量的指针不能用于改变其所指对象的值。

const double pi = 3.14;
double *ptr = π//错误,ptr是一个普通指针
const double *cptr = π//正确,cptr可以指向一个双精度常量
*cptr = 42;//错误,不能给*cptr赋值

3,const指针
指针是对象而引用不是,因此可以把指针本身定为常量。常量指针必须初始化。把*放在const关键字之前用以说明指针是一个常量,即不变的是指针本身的值而非指向的那个值。

int errNumb = 0;
int *const curErr = &errNumb;//curErr将一直指向errNumb
const double pi = 3.14159;
const double *const pip = π//pip是一个指向常量对象的常量指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值