目录
参考<C++高级进阶教程>,博客原创。
1.2 文字常量和常变量
文字常量:
文字常量可以认为是像:1, “a” 这种不可寻址的。无名量。
常变量:
常变量是变量,但是一般用const修饰,一般用作只读的常量。
ps:在编译器遇到const int a = 5;这种写法,会在编译阶段直接将程序中的a替换为文字变量5; 当然在常变量做形参的时候是不会替换的,因为在编译阶段无法得知该值为多少。
1.3 const的用法
const 原理:
基本原理,可以认为是:常类型+变量。
const 使用规律:
注意const位置,const的位置也就决定了常类型,比如:
int * const p; // 常类型是 const int *; 也就是P是一个常指针 等价于下面的式子;
const int *p;
int * const *p; // 常类型是 const int *; 也就是 *p是一个常量。但是p可以变
const int **p; // 常类型是 const int **p; 也就是p是一个常量,但是*p, **p 可以改变。
const 使用目的:
主要是表明,变量不需要改变。但是如果是在函数形参中,例如fun(const int a) 没有必要,因为int类型本来就对外界没有影响。一般在形参中修饰引用或者指针。
常引用是指:不能通过该变量引用改变值。
cont常用场景举例:
- 用cost修饰基本数据类型
- 用const修饰类,这个对象就是常对象;如果用const修饰类的成员函数,这就是常函数;常函数中不允许对任何成员变量进行修改。通过常对象,只能调用常函数,相当于函数重载const this作为形参;而普通对象优先选择非常函数,如果找不到会调用常函数。ps:另外