资源描述:
《C 引用的作用和用法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C引用的作用和用法。txt吃吧吃吧不是罪,再胖的人也有权利去增肥!苗条背后其实是憔悴,爱你的人不会在乎你的腰围!尝尝阔别已久美食的滋味,就算撑死也是一种美!减肥最可怕的不是饥饿,而是你明明不饿但总觉得非得吃点什么才踏实。 本文由zpwodeaia贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C++引用的作用和用法 引用就是某一变量(目标)的一个别名,引用就是某一变量(目标)的一个别名,对引用的操作与对变量直 完全一样。 作完全一样。引用名=目标变量名引用的声明方法:引用名 目标变量名;引用的声明方
2、法:类型标识符&引用名目标变量名;:int【例1】】: a;int&ra=a;//定义引用ra,它是变量a 的引用,即别名定义引用它是变量的引用,接操 在此不是求地址运算,(1)&在此不是求地址运算,而是起标识作用.) 在此不是求地址运算而是起标识作用。(2)类型标识符是指目标变量的类型。)类型标识符是指目标变量的类型. (3)声明引用时,必须同时对其进行初始化.)声明引用时,必须同时对其进行初始化。(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用)引用声明完毕后,相当于目标变量名有两个名称, 且不能再把该引用名作为其他
3、变量名的别名.名,且不能再把该引用名作为其他变量名的别名。ra=1; 等价于 a=1;(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名)声明一个引用,不是新定义了一个变量,的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元.对引用求地址,就是对目标变量求地址。不给引用分配存储单元.故:对引用求地址,就是对目标变量求地址。&ra与&a相等。相等。(6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以 )不能建
4、立数组的引用.因为数组是一个由若干个元素所组成的集合, 无法建立一个数组的别名。无法建立一个数组的别名.立引用的引用, (7)不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种)不能建立引用的引用不能建立指向引用的指针.数据类型!所以没有引用的引用,!所以没有引用的引用数据类型!所以没有引用的引用 , 没有引用的指针。! 例如:例如:intn;;int &&r=n; //错误,编译系统把 错误,看成一体,; 错误编译系统把”int&"看成一体 , 把”&r”看成一体, 看成一体看成一体 即建立了引用的引用,引用的对象应当是某种数据类
5、型的变量int &*p=n;//错误,错误,编译系统把"int&"看成一体, ”*p"看成一体,看成一体,看成一体, 错误编译系统把看成一体把看成一体 即建立了指向引用的指针,即建立了指向引用的指针,指针只能指向某种数据类型的变量(8)值得一提的是 ,可以建立指针的引用 ) 值得一提的是, 例如:例如 :int*p;int*&q=p;//正确, 编译系统把int*"看成一体 ,把”&q"看成一体,正确, 看成一体, 看成一体, 正确编译系统把"看成一体 看成一体 的引用,即建立指针p的引用,亦即给指针p起别名 q。 。本文为互联网收集,请勿用
6、作商业用途 引用应用1、引用作为参数、 引用的一个重要作用就是作为函数的参数.引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)中 又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择) ,就是引又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择)
7、 就是引, 用。 【例2】】:void swap(int&p1, int&p2){ intp;p=p1;p1=p2;p2=p;}//此处函数的形参 p1,p2都是引用此处函数的形参为在程序中调用该函数,则相应的主调函数的调用点处,为在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可,而不需要实参变量有任何的特殊要求。 参进行调用即可,而不需要实参变量有任何的特殊要求。如:对应上面定义的swap函数,相应的主调函数可写为:函数,相应的主调函数可写为:main(){int a,b; cin>>a〉〉b; //输入 a,
8、b两变量的值 输入swap(a,b); //直接以变量 a和b作为实参调用swap 函数 直接以变量cout<floattemp;//定义全局变量temp定义全局变