C語言學習筆記 (003) - C/C++中的實參和形參(轉)

來源:互聯網
上載者:User

標籤:ons   工作   自己   細節   形參   地址   函數   調用   nbsp   

  今天突然看到一道關於形參和實參的題,我居然不求甚解。藐視過去在我的腦海裡只有一個參數的概念,對於形參和實參的區別還真的不知道,作為學習了幾年C++的人來說,真的深深感覺對不起自己對不起C++老師  T。T

我覺得只要明白了值傳遞和地址傳遞,就應該能明白形參和實參的具體工作細節了。

1、值傳遞

    實參是變數,運算式等值。

    find(int x){}

    y= find(z);

   上面的例子中,z是實參,x是形參。x變z不變。

   在值傳遞過程中,實參和形參位於記憶體中兩個不同地址中,實參先自己複製一次拷貝,再把拷貝複製給形參。所以,在值傳遞過程中,形參的變化不會對實參有任何的影響。

2、地址傳遞(也稱引用傳遞)

   實參是指標。

   在函數調用的時候,實參傳遞給你的是指標地址,地址一樣也就意味著實參和形參是一樣的,當你的形參發生改變時,實參也會發生改變。

    find(int  &x){}

    y= find(z);

    上面的例子中,z是實參,x是形參。z隨x而改變。

3、const引用傳遞

    find(const int  &x){}

    y= find(z);

    上面的例子中,z是實參,x是形參。z不隨x而改變。

    有人就會問了,你這樣做不是和值傳遞一樣的嗎?NO!

    仔細觀察就會發現,在值傳遞中要進行兩次拷貝,浪費記憶體資源是相當可恥的,const的出現有效避免了這種情況的出現,只需拷貝一次就夠了。

C語言學習筆記 (003) - C/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.