第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)