C常变量 编译阶段常变量是否作为左值 和其他普通变量相同
C++常量 编译阶段把用到常量的地方替换成常量初始化的值
1.一定要初始化
2、不能有修改内存块的风险
3、const修饰的全局符号是local
4、用变量初始化常量常量退化变量
引用 (一个别名)
底层从指针的方式来支持引用,在引用使用的地方系统自带解引用过程
引用一定要初始化 // int &b; error
引用引用的变量一定要能取地址 // 是内存单元的别名
引用不可改变 // b如果是a的别名,那么b不可以再引用c
引用只能访问引用变量所引用的内存块的值 // 系统自带解引用
1.引用的变量不能取地址 ==>常引用可以处理
数值放到临时量(内存)常引用引用临时量的内存单元
2 . const与二级指针的结合
在杜绝间接访问来减少风险时,二级指针的间接访问不一定只有一个,但是我们只需要杜绝一个即可运行
3 . const与引用的结合
引用引用的变量不能取地址 ==> 常引用可以处理
数值放到临时量(内存),常引用引用临时量的内存单元
int& a = 10 //error!
const int& a = 10; //√
当引用引用的变量不能取地址使,常引用可以处理
4 . const与形参的结合
防止实参被修改(指针或引用)
接受临时量 //内置类型临时量为常量
引用做形参 普通变量做形参
引用修改实参的值
引用不能引用立即数,部分实参无法调用
5 . const与返回值的结合
不能返回局部变量的地址或引用。