第12课 - 经典问题解析一

本文详细解析了C++中const关键字的使用方法及其在编译期间的表现形式。包括const常量进入符号表的条件、const引用的类型及初始化规则等,并区分了只读变量与真正常量的不同。

第12课 - 经典问题解析一

1. 关于const的疑问

  const 什么时候为只读变量?     什么时候为常量

1.1 const常量的判别标准

  (1)只有用字面量初始化的 const 常量才会进入符号表,如:const int i = 0;          // 工作在程序的编译时期,可以确认初始值为0

  (2)使用其它变量初始化的 const 常量仍然是只读变量,如:const int i = j;           // i 为只读变量,因为在编译期间不可能知道变量 j 的值,因此不能确认变量 i 的初始值

  (3)被 volatile 修饰的 const 常量不会进入符号表,如:volatile const int i = 1;     // 要清楚 volatile 的作用,加 const 只是说明 i 不能作为左值

  const 关键字工作在编译期间,在编译期间如果不能直接确定 const 修饰的变量的初始值,那么该变量被作为只读变量处理。

1.2 const引用的类型与初始化变量的类型

  (1)当用变量来初始化与const引用时,如果两者类型相同,则初始化变量成为只读变量。

  (2)当用变量来初始化与const引用时,如果两者类型不同,则将生成一个新的变量,即引用的是另一个新变量,而不是原来的用来初始化引用的那个变量。

  (3)

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值