C++引用作為函數的參數

來源:互聯網
上載者:User

標籤:

  引用也可以作為一個函數的參數,如:我們定義交換兩個數的函數swap,將函數的參數定義成引用的形式:  

1 void swap(int &p1, int &p2)    //此處函數的形參都是引用2 {3     int p;4     p=p1;5     p1=p2;6     p2=p;7 }

 

 

  為了在程式中調用該函數,在相應的主調函數的調用點處直接以變數作為實參進行調用即可,而不需要對實參變數有任何的特殊要求。如上面定義的swap函數的主調函數可寫為:

 

int main(){    int a,b;    cin >> a >> b;    //輸入a,b兩變數的值    swap(a,b);         //直接以變數a和b作為實參調用swap函數即可    cout << a << ‘ ‘ << b;    return 0;}

 

  當發生函數調用時,主調函數的調用點處的實參變數a和b分別傳遞給被調用函數的形參p1和p2,由於形參p1和p2定義成引用的形式,所以這時p1就是實參a的引用,p2就是實參b的引用。所以,在被調函數swap中,任何對形參p1和p2的操作實質就是對實參a和b的操作。

 

  由此,有幾點需要注意:

  • 傳遞引用給函數與傳遞指標的效果是一樣的,這時被調函數的形參就作為原來主調函數中的實參變數或對象的一個別名來使用,所以在被調函數中對形參變數的操作就是對其相應的目標對象(在主調函數中)的操作;
  • 使用引用傳遞函數的參數在記憶體中並沒有產生實參的副本(因為引用只是目標變數的別名而不是一個新的變數),且它是直接對實參操作;而使用一般變數傳遞函數的參數,當發生函數調用時需要給形參分配儲存單元,這樣形參與實參就佔用不同的儲存單元,所以形參變數的值時實參變數的副本。因此,當參數傳遞的資料量較大時,用引用比較好。
  • 使用指標作為函數的參數雖然也能達到與使用引用一樣的效果,但是,在被調函數中需要重複使用“*指標變數名"的形式進行運算,容易產生錯誤且程式的閱讀性較差。    

 

本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!

C++引用作為函數的參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.