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

来源:互联网 发布:阿里云服务器搭建云免 编辑:程序博客网 时间:2024/05/21 22:37

 

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

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

      

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

 

三、引用对比指针

 

 共同点

       都是间接访问变量

       使用前都要初始化

 

不同点

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

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

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

 

四、小结

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

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

处,还望斧正。

 

1 0
原创粉丝点击