第12课

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

原文地址:https://www.cnblogs.com/shiwenjie/p/7169701.html