引用:是修辞手法的一种,援用名人的话,或名人的事、物、诗文、典故、寓言成语俗语格言谚语等,来支持作者的立场,以达到证明和加强自己所说的理论,让文章的内容更为充实[1]
--维基百科

在C++中,引用即代表了取别名,它是一个已经存在的对象的另一种称呼。就比如你的某个朋友小明,你有时候叫他狗蛋,有时候叫他Henti,有时候叫他爸爸,小明一直都是小明,只不过我们对他的称呼变了。这就是引用所代表的意思。
(引用变量是一个别名)
(引用变量并不分配独立的内存空间,它与目标变量共用其内存空间)

我经常把小明喊做老狗,喊他来打游戏,每次他都跑得飞快,毕竟名字什么的,认得出来就好了。
(一旦引用成功,就可以使用该引用名称或变量名称来指向变量)

理所当然地,当你给小明起外号的时候,你肯定得有一个能起得起外号的朋友,不然你就是在无中生有,暗渡陈仓。。。干些引用都不同意的事。
(不存在空引用,引用必须连接到一块合法的内存)

为了避免混淆,“一般”我给小明起的那些外号我都不会给别人用,(ps:除非有人拿枪指着我说“指针万岁”)毕竟他可是我的小明啊~
(引用被初始化为一个对象,就不能被指向到另一个对象,指针可以在任何时候指向到另一个对象
(特殊的,如果引用是作为函数的参数或返回值,那么也可以不提供初值。)

我给小明起外号的话一定很积极,第一时间一定给他起一个,当然,如果那个高喊指针万岁的怪人又来的话,那我听他的,随时随地都可。
( 引用必须在创建时被初始化。指针可以在任何时间被初始化。)

int i = 1024;
int &r = i;

double s = 4201;
double &d= s;

第一个声明可读作:“r是一个初始化为i的整型引用。”
第二个声明可读作:“d是一个初始化为s的double型引用。”

作参数
引用在函数中作为参数时可以起到“改变传入值”这一作用,它的作用是双向的。

作返回值

double A[] = { 1.2, 2.3 , 4.5 , 6.7}
double &B(int i)
{
    return vals[i];
}
int main()
{
    B(2) = 9.8; //将A[2]的值改为了9.8,原为4.5
    B(0) = 0.3;//将A[0]的值改为了0.3,原为1.2
}    

Cherryzc
7 声望1 粉丝