最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++函數(shù)參數(shù)傳遞機(jī)制詳解及實(shí)例

 更新時(shí)間:2017年02月14日 14:17:51   投稿:lqh  
這篇文章主要介紹了C/C++函數(shù)參數(shù)傳遞機(jī)制詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

C/C++函數(shù)參數(shù)傳遞機(jī)制詳解及實(shí)例

概要:

C/C++的基本參數(shù)傳遞機(jī)制有兩種:值傳遞和引用傳遞,我們分別來(lái)看一下這兩種的區(qū)別。

(1)值傳遞過程中,需在堆棧中開辟內(nèi)存空間以存放由主調(diào)函數(shù)放進(jìn)來(lái)的實(shí)參的值,從而成為了實(shí)參的一個(gè)副本。值傳遞的特點(diǎn)是被調(diào)函數(shù)對(duì)形參的任何操作都是作為局部變量進(jìn)行,不會(huì)影響主調(diào)函數(shù)的實(shí)參變量的值。

(2)引用傳遞過程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是這時(shí)存放的是由主調(diào)函數(shù)放進(jìn)來(lái)的實(shí)參變量的地址。被調(diào)函數(shù)對(duì)形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調(diào)函數(shù)中的實(shí)參變量。正因?yàn)槿绱?,被調(diào)函數(shù)對(duì)形參做的任何操作都影響了主調(diào)函數(shù)中的實(shí)參變量。

下面我們來(lái)看一個(gè)示例。

/*
*測(cè)試函數(shù)參數(shù)傳遞機(jī)制
*/
class CRect {

public:
  int height;
  int widht;

  CRect() {
    height = 0;
    widht = 0;
  }

  CRect(int height, int widht) {
    this->height = height;
    this->widht = widht;
  }

};

//(1)傳址調(diào)用(傳指針)
int RectAreaPoint(CRect *rect) {
  int result = rect->height * rect->widht;
  rect->height = 20;
  return result;
}

//(2)引用傳遞
int RectAreaRefer(CRect &rect) {
  int result = rect.height * rect.widht;
  rect.height = 30;
  return result;

}

//(3)傳值調(diào)用
int RectArea(CRect rect) {
  int result = rect.height * rect.widht;
  rect.height = 40;
  return result;
}

看一下我們的測(cè)試代碼和測(cè)試結(jié)果。

//測(cè)試代碼邏輯
void testPoint() {
  CRect rect(10, 10);
  cout << "面積:" << RectAreaPoint(&rect) << endl;
  cout << "面積:" << RectAreaRefer(rect) << endl;
  cout << "rect.height:" << rect.height << endl;
  cout << "面積:" << RectArea(rect) << endl;
  cout << "rect.height:" << rect.height << endl;
}

//測(cè)試結(jié)果
面積:100
面積:200
rect.height:30
面積:300
rect.height:30

可以發(fā)現(xiàn)傳址調(diào)用和引用傳遞兩種方式,當(dāng)改變形參的值時(shí),同時(shí)也會(huì)將實(shí)參的值改變,而傳值調(diào)用改變形參則對(duì)實(shí)參沒有任何影響。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • c++自帶的查找函數(shù)詳解

    c++自帶的查找函數(shù)詳解

    這篇文章主要介紹了c++自帶的查找函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • c++ signal實(shí)現(xiàn)發(fā)送信號(hào)

    c++ signal實(shí)現(xiàn)發(fā)送信號(hào)

    這篇文章主要為大家詳細(xì)介紹了c++ signal實(shí)現(xiàn)發(fā)送信號(hào)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C++實(shí)現(xiàn)strcmp字符串比較的深入探討

    C++實(shí)現(xiàn)strcmp字符串比較的深入探討

    本篇文章是對(duì)使用C++實(shí)現(xiàn)strcmp字符串比較進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++結(jié)合OpenCV實(shí)現(xiàn)RRT算法(路徑規(guī)劃算法)

    C++結(jié)合OpenCV實(shí)現(xiàn)RRT算法(路徑規(guī)劃算法)

    這篇文章主要介紹了C++結(jié)合OpenCV實(shí)現(xiàn)RRT算法,RRT算法整體框架主要分為rand、near、new三點(diǎn)的建立和near與new之間的安全性檢查,需要的朋友可以參考下
    2022-05-05
  • c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例

    c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例

    這篇文章主要介紹了c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例,需要的朋友可以參考下
    2014-05-05
  • C++讀取帶空格字符串的方法

    C++讀取帶空格字符串的方法

    今天小編就為大家分享一篇C++讀取帶空格字符串的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-07-07
  • C語(yǔ)言實(shí)現(xiàn)鏈隊(duì)列代碼

    C語(yǔ)言實(shí)現(xiàn)鏈隊(duì)列代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)鏈隊(duì)列代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 詳解C++ 引用

    詳解C++ 引用

    這篇文章主要介紹了C++ 引用的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C++ 之explicit關(guān)鍵字

    C++ 之explicit關(guān)鍵字

    今天我們來(lái)談?wù)凜++中的explicit關(guān)鍵字,這篇文章詳細(xì)介紹了C語(yǔ)言的關(guān)鍵字explicit關(guān)鍵字,本文有詳細(xì)的代碼實(shí)例,感興趣的同學(xué)可以借鑒參考
    2023-04-04
  • C++基于QWidget和QLabel實(shí)現(xiàn)圖片縮放,拉伸與拖拽

    C++基于QWidget和QLabel實(shí)現(xiàn)圖片縮放,拉伸與拖拽

    這篇文章主要為大家詳細(xì)介紹了C++如何基于QWidget和QLabel實(shí)現(xiàn)圖片縮放、拉伸與拖拽等功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02

最新評(píng)論

安徽省| 石河子市| 长丰县| 浪卡子县| 同仁县| 贵溪市| 榕江县| 安远县| 同仁县| 延津县| 保山市| 个旧市| 嘉峪关市| 光泽县| 双流县| 隆德县| 徐闻县| 右玉县| 文成县| 五大连池市| 双柏县| 五河县| 噶尔县| 九龙坡区| 乐亭县| 钦州市| 措美县| 卢氏县| 泉州市| 元谋县| 垣曲县| 福鼎市| 威信县| 德兴市| 哈密市| 方正县| 淄博市| 化州市| 鄯善县| 高唐县| 佛学|