引用变量被定义为一个变量的别名,即引用变量和其指向的变量代表同一个值,指向同一个存储单元,并且引用变量自从赋值起就已知跟着这个变量,不会再发生改变,也就是一个变量两个名字,所以更改其中的任何一个这个变量都会发生改变。
&
符号可以指示变量的地址,同时它的另一个含义就是用来声明引用:
int genius;
int & me = genius;
这里的&
不是地址运算符,而是类型标识符的一部分,就像int *
是int
类型的指针一样,int &
是指向int
的引用。上述声明将me和genius等价,它们指向相同的值和内存单元,就是说me就是genius,而genius就是me。
引用和指针
引用和指针貌似很相像,例如:
int genius = 100;
int & me = genius;
int * myself = &genius;
这样,神奇的事情来了:
me == *myself == genius
&me == myself == &genius
引用与指针也有区别,例如必须再声明时将引用的值初始化