《C++ primer 读书笔记》:const 限定修饰符

引入:对于一个程序中多处出现的常量,通过选择一个助记名,可能使程序更具可读性。 

const 类型限定修饰符提供了一个解决方案,它把一个对象转换成一个常量( constant)--只读 。

1.  const 常量

因为常量在定义后就不能被修改,所以它必须被初始化。未初始化的常量定义将导致编译错误。

const double pi; // 错误: 未初始化的常量
const double pi=3.14  //ok

2.指向 const 的指针

const 对象的地址只能赋值给指向 const 对象的指针.指向 const 对象的指针可以被赋以一个非 const 对象的地址。

//pc 是一个指向 double 类型的 被定义成 const 的对象的指针
const double *pc = 0;
const double minWage = 9.60;
double dval = 3.14;

// ok: 不能通过 pc 修改 minWage
pc = &minWage;

// ok: dval 本身不是一个常量 但是不能通过 pc 修改 dval
pc = &dval;

在实际的程序中,指向 const 的指针常被用作函数的形式参数,它作为一个约定来保证:被传递给函数的实际对象在函数中不会被修改 

3. const 指针

//curErr 是指向一个非 const 对象的 const 指针 
//不能赋给 curErr 其他的地址值 但可以修改 curErr 指向的值
int errNumb = 0;

//curErr是一个指向 int 类型对象的 const 指针
int *const curErr = &errNumb;

4.指向 const 对象的 const 指针

const double pi = 3.14159;
//pi_ptr 是指向被定义为 const 的 double 类型对象的 const 指针
const double *const pi_ptr = π

pi_ptr指向的对象的值以及它的地址本身都不能被改变

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值