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修飾,引用就成了常引用。 這樣就不能通過常引用更改引用的變數的值了。
三、引用對比指標
共同點
都是間接訪問變數
使用前都要初始化
不同點
引用不佔新的地址,節省記憶體
引用不能修改變數的地址,使用起來比較安全
低級編程多用指標,進階編程多用引用
四、小結
引用也是程式設計語言中一個重要的東西,在簡化程式設計的同時,也提高了資料訪問的安全性。關於引用,我現在
瞭解的還不是很深入,到這裡先告一段落,相信在以後的編程中經常會與它打交道,再慢慢體會吧。 如有不足之
處,還望斧正。