C++構造資料類型----引用,構造資料類型----

來源:互聯網
上載者:User

C++構造資料類型----引用,構造資料類型----

 

       提及引用,我想起了小時候夥伴們互相起外號,同學們的外號有時特別生動形象,每當提及都忍俊不禁。自從給

某人起了一個有特色的外號後,他的名字就被取締了。 時間長了,只要叫某同學的外號,他便答應了。

      

       知識源於生活,在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修飾,引用就成了常引用。 這樣就不能通過常引用更改引用的變數的值了。

 

三、引用對比指標

 

 共同點

       都是間接訪問變數

       使用前都要初始化

 

不同點

     引用不佔新的地址,節省記憶體

     引用不能修改變數的地址,使用起來比較安全

     低級編程多用指標,進階編程多用引用

 

四、小結

        引用也是程式設計語言中一個重要的東西,在簡化程式設計的同時,也提高了資料訪問的安全性。關於引用,我現在

瞭解的還不是很深入,到這裡先告一段落,相信在以後的編程中經常會與它打交道,再慢慢體會吧。 如有不足之

處,還望斧正。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.