说到引用就不能不说指针了.引用与指针非常容易混淆(我以前也被它弄的很头大).
假设ui是i的引用,则i就是被引用的对象,于是就有上面的程序片段.我们可以这样
理解,ui相当于i的别名,对于ui的任何操作,也就是对于i的操作.所以,ui即不是i的拷贝
也不是指向i的指针,其实ui就是i自己,是同一个实体两个名字.
引用的主要用处在于传递函数的参数和返回值.正因为ui是i自己,所以,用引用传递参
数,在名字上看不同,实际是同一个变量.比如对于某个函数的定义界面是这样的:
void func(int &ui)
而在程序中它被这样调用:
int i=123
func(i);
于是我们就知道,这个函数的参数,i就是ui,ui就是i.在函数内部,对于ui的任何操作
和变动,都相当于直接对i的操作和变动.
引用还有一些特殊的约定:
引用在被创建的同时,就应该初始化(而指针可以先创建,然后在需要的时候再赋值).
不能有NULL的引用,引用必须与合法的存储单元相联系(指针则可以有NULL).
一旦引用被初始化,就不能改变引用的关联,即引用是"从一而终"的.
如下面的示例:
int i=1;
int j=10000;
int &k=i;
int k=j;
i的结果会是多少?????????