c++const限定符

当我们希望保持某一值不变或者较方便的改变某值时,我们可以用关键字const

一、const的引用

1.如果对象是常量,引用必须是常量

const int a = 1024;
const int& game = a;    //正确
int& game = a;          //错误

2.引用用的可以强制类型转换

const double a = 1.66;
const int& game = a;        //输出1

3.可以用常量引用非常量,不过不能通过引用来改变非常量的值

int a = 1;
const int& game = a;    //可以引用
game = 2;               //无法修改

二、const与指针

1.改变指向与改变值

double rate = 1.6;
const double* p1 = &rate;				//不可以通过指针改变值
double* const p2 = &rate;				//不可以改变指向
const double* const p3 = &rate;        	//不能改变指向和值

三、顶层const

1.用顶层const表示指针(或任意对象)本身是个常量,用底层const表示指针所指的对象是一个常量。

const double a=1.66;                    //顶层const
double rate = 1.6;
const double* p1 = &rate;				//底层const
double* const p2 = &rate;				//顶层const
const double* const p3 = &rate;        	//先是底层const后是顶层const

四、constexper和常量表达式

1.常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。

double rate = 1.6;				    //不是常量表达式
const double game = 5.5;			//常量表达式
const int size = get_size();		//直到运行才知道值,故不是常量表达式

2.c++11中允许将变量声明为constexpr类型,如此声明的变量一定是个常量而且必须用常量表达式初始化

constexpr int size = size();    //当size是个constexper函数时才正确

3.constexpr把对象置为顶层const

constexpr int* a = &time;    //常量指针
const int* a = &time;        //指向常量

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值