提及引用,我想起了小时候伙伴们互相起外号,同学们的外号有时特别生动形象,每当提及都忍俊不禁。自从给
某人起了一个有特色的外号后,他的名字就被取缔了。 时间长了,只要叫某同学的外号,他便答应了。
知识源于生活,在C++中也出现了的外号,它没有人的外号那么幽默,但是很雅致,叫做引用。
引用在编程中
很实用,很方便。主要是为了描述函数的参数和返回值,使程序简洁,高效。
一、定义
形式 数据类型 & 引用变量名=变量名
例:世界贸易组织(World Trade Organization)这个词太长了,给它起个外号吧。
char & WTO = 世界贸易组织
从此以后就管 世界贸易组织叫WTO, 但不管怎么称呼,它都是指同一个事物。
注意:
1.定义引用时必须初始化
2.引用名称唯一,不能再定义其他变量的引用
3.只能对已经存在的变量定义引用
二、应用
1.作为函数参数
函数被使用时,我们通常把实参值放入函数参数列表中,发生了一个实参传递给形参的过程。 但引用作为函数
的形参,在函数被使用时,函数中的参数已经是引用变量的值了。 这个与指针作为函数参数比较相似。
2.作为函数返回值
通过一个例子来深刻理解作为返回值
include "stdafx.h" #include "stdlib.h" #include<iostream> using namespace std; int max1(int a[],int n) //求数组a[]中最大值 { int t=0; for (int i=0;i<n;i++) if(a[i]>a[t]) t=i; return a[t]; } int &max2(int a[],int n ) { int t=0; for(int i=0;i<n;i++) if(a[i]>a[t]) t=i; return a[t]; } int &sum(int a[],int n) { int s=0; // m4将引用s ,看看引用后有什么不对的地方 for(int i=0;i<n;i++) s+=a[i]; return s; } int main() { int a[10]={1,2,4,5,6,7,8,9,10}; int m1=max1(a,10); int m2=max2(a,10); //max2()返回类型是int & ,可以被int型变量接受 int &m3=max2(a,10); int &m4=sum(a,10); //m4引用返回变量s, 由于s是函数体内的变量,函数调用结束时,s就无效了 //最后得出的m4是个无效值 ,所以函数返回引用类型变量不能是临时变量。 cout<<"m1="<<m1<<endl; cout<<"m2="<<m2<<endl; cout<<"m3="<<m3<<endl; cout<<"m4="<<m4<<endl; system("pause"); return 0; }
3.常引用
在声明引用的数据类型前加const修饰,引用就成了常引用。 这样就不能通过常引用更改引用的变量的值了。
三、引用对比指针
共同点
都是间接访问变量
使用前都要初始化
不同点
引用不占新的地址,节省内存
引用不能修改变量的地址,使用起来比较安全
低级编程多用指针,高级编程多用引用
四、小结
引用也是编程语言中一个重要的东西,在简化程序设计的同时,也提高了数据访问的安全性。关于引用,我现在
了解的还不是很深入,到这里先告一段落,相信在以后的编程中经常会与它打交道,再慢慢体会吧。 如有不足之
处,还望斧正。
时间: 2024-10-10 14:16:46