示例:
int a=100;
int &b=a; // ==> 给 a 取别名
注意:C++编译器特有,gcc 编译器会报错!
本质:int &a ;==>int *const a;
【问题】引用是否有地址?
答:有地址!!!
特点:
1)引用在C++中的内部实现是一个常量指针
Type& name Type* const name
2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大
小与指针相同。
3)从使用的角度,引用会让人误会其只是一个别名,没有自己的存储空间。这是C++
为了实用性而做出的细节隐藏
(const 引用让变量拥有只读属性)
//const int c1 = 10;
const int &c2 = 10;// 等效,但不推荐==> 开源代码中可能出现!!
这样是否可行?可行,这个是在 C++中,编译器会对这样的定义的引用
分配内存,这算是一个特例