const关键字

const关键字

一、含义

const:是constant的缩写,“恒定不变”的意思。

二、作用

限定一个变量为只读,被const修饰的东西都受强制保护,可预防意外的变动,提高程序的健壮性

三、使用
1、定义常量

① 修饰普通变量(在开始声明时就赋值)

 const int NUM = 10;   // 与int const NUM等价
 NUM = 9;  // 编译错误,不可再次修改

② 修饰数组

const int a[] = {0, 1, 2, 3, 4}; 
a[2] = 3;   // 编译错误,数组元素不允许被修改

2、指针中的const

① const修饰*p,指向的对象只读,指针的指向可变

int a = 9;
int b = 10;
const int *p = &a;   
*p = 11;   // 编译错误,指向的对象只读,不可通过p改变
p = &b;    // 合法,改变了p的指向

② const修饰p,指向的对象可变,指针的指向不可变

int a = 9;
int b = 10;
int *const p = &a;   
*p = 11;   // 合法
p = &b;    // 编译错误,p是一个const指针,只读,不可变

③ 指向的对象、指针的指向均不变

int a = 9;
int b = 10;
const int *const p = &a; 
// p既是一个指针,同时也是指向int类型的const值
*p = 11;   // 编译错误,指向的对象只读,不可通过p改变
p = &b;    // 编译错误,p是一个const指针,只读,不可变
总结
const位于*的左侧,限定指针指向的对象只读,不可变
const位于*的右侧,限定指针本身只读,不可变
const *p;   // 修饰*p,指针指向的对象不可变
*const p;   // 修饰p,指针不可变
const *const p;  // 第一个修饰*p,第二个修饰p,两者均不可变

3、函数中使用const(修饰函数的参数、返回值、定义体)

重点:引用参数中使用const

bool cmp(int a, int b);
bool cmp(const int &a, const int &b);
区别
int:按值传递 —— 用于函数将自动产生临时变量用于复制该参数(会 建立 一个类对象的 副本 ,然后传递过去), 效率较低
const int &:引用传递—— 仅借用一下参数的别名而已,不需要产生临时对象( 直接传递地址 ), 效率较高

:引用传递有可能改变参数,const修饰可以解决这个问题

② const修饰函数的返回值、定义体(不常使用)

四、使用建议: Use const whenever you need.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值