引用是一个 共享其它变量内存 的变量。我们称这种操作是“引用一个变量”或“给变量取别名”。
之前说过,变量名称关联变量内存。在变量名前加&符,就可以得到内存地址;而变量名,则“体现”了内存中的数据。而给变量取别名,实际上是把图中的“别名”和内存地址相关联。所以,你看到的效果就是,给“别名”赋值为1,“变量名”的值也变为1了。
//代码说明:
int 变量名 = 0; //定义一个int类型变量。
int& 别名 = 变量名; //定义一个int&类型变量。“别名”是变量名,和“变量名”的内存中相关联。
别名 = 2; //此时“别名”同“变量名”关联着同一块地址,所以两者的值都为2。
引用和指针还是有点关系
指针是一个存放内存地址的变量,可以间接操作其它变量;引用是一个共享其它变量内存的变量,是直接操作其它变量。
引用相比普通变量,特殊的地方:
1、没有自己的内存,只能共享其它变量的内存。
2、声明的同时,必须定义,也就是必须赋初值。
3、赋初值过后,别名就和其它变量共享内存了。之后操作别名,就同操作变量名没区别。
//代码说明:
Int 王开国 = 1; //
Int& 王二狗 = 王开国; //王开国 = 1;王二狗 = 1;
王二狗 = 3; //王开国 = 3; 王二狗 = 3;
Int 王大锤 = 2;
王二狗 = 王大锤; //王开国 = 2; 王二狗 = 2; 王大锤 = 2;
王大锤 = 4; //王开国 = 2; 王二狗 = 2; 王大锤 = 4;