《(3.3)--3.3 引用及函数间引用传递.ppt》由会员分享,可在线阅读,更多相关《(3.3)--3.3 引用及函数间引用传递.ppt(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、引用及函数间引用传递C C+引用及函数间引用传递引用及函数间引用传递01引用假设,已定义变量inta=20;变量名访问:couta;指针访问:int*pa;pa=&a;cout*pa;引用访问:已有变量的别名int&xa=a;coutxa;xapaa内存200012:FF7C0012:FF780012FF7C01引用 int a;int&xa;/编译出错编译出错 xa=a;C C+引用及函数间引用传递引用及函数间引用传递(1)定义定义引用时一定引用时一定要将要将其其 初始化初始化成引用某个变量。成引用某个变量。int a=3,b=6;int&xa=a;xa=b;(2)引用初始化后,它就一直引用
2、该变量,不会再引用别的变量了。引用初始化后,它就一直引用该变量,不会再引用别的变量了。01p实际上,在实际上,在C+程序中很少使用独立变量的引用,如果要使用某一个程序中很少使用独立变量的引用,如果要使用某一个变量,就直接使用它的原名,没有必要故意使用它的别名。前面举变量,就直接使用它的原名,没有必要故意使用它的别名。前面举的例子只是为了说明引用的特征和基本的用法。的例子只是为了说明引用的特征和基本的用法。pC+之所以增加之所以增加“引用引用”,主要是利用它作为,主要是利用它作为函数参数,以扩充函数,以扩充函数传递数据的传递数据的功能。功能。C C+引用及函数间引用传递引用及函数间引用传递引用0
3、2C C+引用及函数间引用传递引用及函数间引用传递函数间引用传递在在C语言中,函数的参数传递有以下两种情况:语言中,函数的参数传递有以下两种情况:v(1)值传递:)值传递:v(2)地址传递:)地址传递:v(3)引用传递)引用传递:02C C+引用及函数间引用传递引用及函数间引用传递函数间引用传递v引用传递引用传递:#include using namespace std;void Change(int&a,int&b)int tmp;tmp=a;a=b;b=tmp;int main()int x=10,y=20;cout交换前:交换前:x=x,y=yendl;Change(x,y);cout交
4、换后:交换后:x=x,y=yendl;return 0;10变量变量x20变量变量y1020main()Change()别名别名a 别名别名b02C C+引用及函数间引用传递引用及函数间引用传递函数间引用传递引用传递的好处:(1)形参直接引用实参,不需要分配内存、传递数据。这样可以)形参直接引用实参,不需要分配内存、传递数据。这样可以提高函数调用速度,降低内存占用。提高函数调用速度,降低内存占用。这这一点上,引用比值传递和地址一点上,引用比值传递和地址传递都强。传递都强。(2)可以通过引用实现双向数据传递。)可以通过引用实现双向数据传递。02C C+引用及函数间引用传递引用及函数间引用传递函数间引用传递u例如:void void show(const int&x)show(const int&x)x=8;x=8;cout“x=“xendl;cout“x=“xendl;u常引用声明方式:const类型标识符&引用名=目标变量名;小结引用传递引用常引用