引用即别名

1. 含义

引用即别名。这是理解引用的核心。a是一个变量,b是a的引用,你不论是对a还是b踢了一脚,这两人都得受伤。
新建一个变量的引用,实际上就是对原来变量取了个别名,因此这一操作不会开辟内存空间,这是和指针的根本区别。定义指针指向一个变量是要开辟内存空间的,那个空间里存放的是指向那个变量的地址。

2. 用法

[类型] & [别名]=[需要引用的变量]

括号内的都是可以改变的。例如:

int x = 10;

int y = 20;

int & b = x;

int & c = b; //这是正确的,可以给一个家伙起两个别名,也可以给已经有别名的家伙起个别名

int & b = y; //这是错误的,不能把一个别名用在两个人身上 

3. 注意点

a) 引用的类型必须要和被引用的类型一致,给一个汉子起个娘炮的名字想必是不合适的。
有例外,那就是引入const字符。

b) 引用在定义的时候就必须要初始化(应用在函数中有例外)

c) 可以建立指针变量的引用,但不能定义指向引用类型的指针变量

例如

int  a=10;
int & b=a;
int *p = &a;
int * & pp =p;//正确,指针也是人,当然有起别名的权利
int & *ppp =&a;//错误,不能定义指向引用类型的指针变量,因为你都不知道这个逗逼是个什么人
//注意,引用可不是个具体的人,你无法用指针指向这个你都不知道的家伙