当前位置:编程学习 > C/C++ >>

C++中的引用

学过C语言的都知道,学好C语言必须要学好指针,指针可以说成是内存中的一个地址,但是在C++中,指针的地位似乎没有那么突出,因为使用指针会带来很多问题,所以C++中增添了引用,在代码中用“&”表示,和取地址值的符号是一样的,当然我们在学习使用的过程中一定要注意区分引用和取地址值的符号进行区别。
    引用就是为变量起一个别名,C++中的引用共分为以下三类:

 

      下面通过具体代码实例分别进行介绍:

1.对变量的引用

格式:数据类型 &别名=已定义的变量名

实例:

#include <iostream.h>

void main()

{

int m;

int &n=m; //为变量i引用别名j

m=30;

cout<<"m="<<m<<"n="<<n<<"\n";

n=80;

cout<<"m="<<m<<"n="<<n<<"\n";

cout<<"Address of m"<<&m<<"\n"; //取m地址,这里不是引用cout<<"Address of n"<<&n<<"\n";

}

运行结果:

 

   通过运行结果发现,当对变量m引用别名n后,对m进行赋值,就是对n进行赋值,反过来对n进行赋值也是对m进行赋值,并且我们发现m和n的地址值是一样的,所以引用就是为变量起别名,并没有申请新的内存空间。

但是在使用引用需要注意以下几点问题:

(1)定义引用时,必须立即对其进行初始化,不能以后再赋值。

(2)引用其实是一种隐式指针,可以少用“*”。

(3)引用不可以重新赋值,不可以作为另一个变量的别名。

(4)不能建立指向引用的指针,不能建立引用的引用,也不能建立引用数组。


2.对函数参数的引用

实例代码:

#include <iostream.h>

void swap(int & m,int &n)

{

int temp;

temp=m;

m=n;

n=temp;

}

void main()

{

int a=2,b=4;

cout<<"a="<<a<<"b="<<b<<endl;

swap(a,b);

cout<<"a="<<a<<"b="<<endl;

}

运行结果:

 

通过代码和运行结果我们可以发现,使用引用作为函数参数时,传递的是地址,而不是值,引用参数的方法可以代替C语言中指针地址的调用方式。


3.函数的返回值

实例代码:

#include <iostream.h>

int a[]={1,3,5,7,9};

int &index(int); //声明引用函数

void main()

{

index(2)=25; //将a[2]重新赋值

cout<<index(2)<<endl;

}

int &index(int i)

{

return a[i];

}

运行结果:


      透过运行结果,可以发现,数组a[]中的第3个元素被改成了25.
    好了,就介绍到这里,希望可以帮到你。

补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,