前言
在C++入门上我们简单的介绍了c++这门语言,了解了命名空间、缺省函数等C++特性这节课我们将继续深入了解C++的引用、内联函数、auto等特性。
1 引用
引用是一个很好的操作工具,他就类似给一个空间(变量)取别名,可以使两个不同的名字指向同一块空间,换句话说,引用是指针改进版,在后续学习中,有 80% 的场景都会使用引用而非指针。
比如李逵,在家称为"铁牛",江湖上人称"黑旋风"
int a = 10;
int* pa = &a; //指针
int& ra = a; //引用
上面代码段中的 ra 与 a 都表示同一块空间,而 *pa 和 a 也表示同一块空间;可以简单把引用理解为一个智能版指针,会自动解引用,使用起来更方便
引用的底层任然是指针
1.1 引用的特性 | 规则
- 引用必须初始化,当一个引用变量被创建时,必须存在其所代表的变量
- 一个变量可以存在多个引用,就像 土豆 可以有多个别名
- 当引用初始化后,无法再代表其他变量,每个引用一生只为一人
- 不存在多级引用,当 引用b 代表 引用a 时,实际上就是在代表 引用a 所代表的变量 a
char a = 'A';
char b = 'B';
//1、引用必须初始化
char& ra = a; //正确
char& rx; //错误,必须初始化
//2、一个变量可以有多个引用
char& ra = a;
char& rra = a;
char& rrra = a; //没有问题,一个变量允许存在多个引用
//3、引用无法改变指向
char& ra = a;
char& ra = b; //错误,引用一旦确立后,就无法再改变其指向
ra = b; //这个没问题,实际结果为 a = 'B' 即将 b 的内容赋值给 a
//4、不存在多级引用
char& ra = a;
char&am