const关键字详解 C++(程序员面试笔试宝典笔记)

  • 定义:

常类型也称为const类型,是指使用类型修饰符const说明的类型。const是C和C++中常见的关键字,C中,主要用于定义变量为常类型以及修饰函数参数与返回值,而在C++中,还可以修饰函数的定义,定义类的成员函数。

  • 注:

常类型的变量或对象的值是不能被更新的,常量必须初始化

  • 作用:

  1. 定义const变量,具有不可变性
  2. 进行类型检查,使编译器对处理内容有更多的了解,消除些隐患
  3. 避免意义模糊的数字出现,同时可以方便的进行参数调整和修改,不变则已,一变都变
  4. 保护被修饰的东西,防止被意外的修改,增强了程序的健壮性
  5. 为函数重载提供参考
  6. 节省空间,避免不必要的内存分配,程序运行中只一份复制品
  7. 提高了程序的效率。编译器通常不为不同const常量分配存储空间,而是将它们保存在符号表中,使得它成为编译期间的常量,没有了存储与读内存的操作,其效率更高
  8. 什么情况下需要使用const关键字
  • 什么情况下需要使用const关键字
  1. 修饰简单类型的常量,可以用在类型说明符前或后
  2. 修饰常数组
  3. 修饰常对象,定义常对象时,要进行初始化,且该对象不能再被更新
  4. 修饰常指针
  5. 修饰常引用,该引用所引用的对象不能被更新
  6. 修饰函数的常参数。告诉编译器,该传递参数在函数体内无法改变
  7. 修饰函数的返回值,表示返回值不可被修改
  8. 修饰类的成员函数,这样在调用函数时就不能修改类或对象的属性
  9. 在另一连接文件中引用const常量,使用方法如下:

    extern const int j;

  • 什么是常引用

也称const引用,是为了避免在使用变量的引用时,在毫不知情的情况下改变了变量的值,从而引起程序出错,主要用于定义一个普通变量的只读属性的别名,作为函数的传入形参,避免实参在调用函数中被意外的改变

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用,声明方式:

        const 类型标识符 & 引用名 = 目标变量名

常引用的主要用途有

  1. 用作普通变量的只读属性的别名
  2. 用于函数的形参

注:

1、若对一个常量进行引用,则编译器首先建立一个临时变量,然后将该变量置入临时变量中,对该引用的操作就是对该临时变量的操作,对常量的引用可以用任何其他引用来初始化,但不能改变

2、当初始化值是一个左值(可以取得地址)时,没有任何问题,但当初始化值不是一个左值时,则只能对一个常引用赋值,且这个赋值是由一个过程的,首先将值隐式转换为类型T,然后将这个转换结果存放在一个临时对象里,最后用这个临时对象来初始化这个引用变量,如:

(1)double& dr = 1;

(2)const double& cdr = 1;

第一种是错的,因为初始化值不是左值,第二种是对的,执行过程如下

double temp = double();

const double& cdr = temp;

修改第一种

const int ival = 1024;

(1)const int &refVal = ival;

(2)int &ref2 = ival;

第一种是对的,第二种是错的。const引用可以初始化为不同雷丁的对象或者初始化为右值,如字面值常量,而非const引用只能绑定到与该引用同类型的对象

注:

C++中,临时对象是const类型的,引用型参数应该在能被定义为const的情况下,尽量定义为const



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值