您的位置:首页 > 编程语言 > C语言/C++

C++构造数据类型----引用

2015-02-24 20:51 316 查看
 

       提及引用,我想起了小时候伙伴们互相起外号,同学们的外号有时特别生动形象,每当提及都忍俊不禁。自从给

某人起了一个有特色的外号后,他的名字就被取缔了。 时间长了,只要叫某同学的外号,他便答应了。

      

       知识源于生活,在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修饰,引用就成了常引用。 这样就不能通过常引用更改引用的变量的值了。

 

三、引用对比指针

 

 共同点

       都是间接访问变量

       使用前都要初始化

 

不同点

     引用不占新的地址,节省内存

     引用不能修改变量的地址,使用起来比较安全

     低级编程多用指针,高级编程多用引用

 

四、小结

        引用也是编程语言中一个重要的东西,在简化程序设计的同时,也提高了数据访问的安全性。关于引用,我现在

了解的还不是很深入,到这里先告一段落,相信在以后的编程中经常会与它打交道,再慢慢体会吧。 如有不足之

处,还望斧正。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 编程 编程语言