參數傳遞(引用,指標,值傳遞)C++11

來源:互聯網
上載者:User

標籤:引用   值傳遞   引用傳遞   

C++中,函數的參數傳遞方式有值傳遞、地址傳遞。傳地址有指標和引用方式。
在函數參數中,傳地址的理由有:
1.使被調函數可以修改主調函數中的資料對象;
2.傳地址可以減少資料拷貝,提高程式執行速度。

那麼,何時使用值傳遞,何時使用地址傳遞(指標和引用)?
下面是一些寫代碼時會遇到的一些情況

被調函數使用參數對象時,不會修改資料對象
  1. 如果要傳入函數的資料對象較小,比如是內建資料類型或小規模的結構體,那麼使用值傳遞;
  2. 如果資料對象是數組,那麼使用指標(這也是你唯一的選擇)。指標添加const修飾;
  3. 如果資料對象是大規模的結構體,使用const指標或const引用;
  4. 如果資料對象是class對象,使用const引用。這也是C++中傳遞class對象的標準做法;
被調函數使用參數對象時,會修改資料對象
  1. 資料對象是內建資料類型,使用指標(func(&var)表明函數中要修改var,比使用引用的調用形式func(var)可讀性好);
  2. 資料對象是數組,指標是唯一的選擇;
  3. 資料對象是結構體,使用指標或引用;
  4. 資料對象是class對象,使用引用;

當然,以上只是一般情況。特殊情況另外討論。

參數傳遞(引用,指標,值傳遞)C++11

聯繫我們

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