引用(reference)是什么?
- 引用是一种类型;
- 定义一个新的变量作为另一个已存在变量的别名(alias);
- 引用的内存意义:同样的地址!!
- 一旦把引用初始化为某个比那辆,就可以使用该名称来操作该变量
int i = 42;// int表示类型,a表示变量,10表示数值
int& r = i; // 这就是定义"引用"的方式
无论是引用
,还是指针
,他们都是一种类型
。那么他们的区别到底在哪?
引用
:
- 是将所定义的变量名和已经存在的另一个变量的地址绑定在一起,没有分配新的内存给该变量。
- 进一步理解,其实当我们定义一个新变量时,系统也是将变量名和所给其分配的地址绑定在一块,当引用时,仅仅是给相关地址多绑定了一个名字。
- 一旦引用被初始化为一个对象,就不能被指向另一个对象。指针可以在任何时候指向另一个对象。
指针
:
- 定义指针则是单独开辟出一块区域(32位系统开辟4字节,64位系统开辟8字节),这块区域是用来存放地址信息的,这里边的地址信息是可以修改的。