久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: [C++]筆記二十四:C++中函數(shù)參數(shù)傳遞的方式 [打印本頁]

作者: tyyhmtyyhm    時間: 2018-4-3 20:45
標題: [C++]筆記二十四:C++中函數(shù)參數(shù)傳遞的方式
本帖最后由 tyyhmtyyhm 于 2018-4-28 10:03 編輯

C++中,參數(shù)傳遞的方式是實虛結合 函數(shù)被調用時的傳參方式有三種形式(C語言中沒有“引用”,另外兩個相同):
1按值傳遞(pass by value)
2地址傳遞(pass by pointer)
3引用傳遞(pass by reference)

1、按值傳遞
過程為:首先計算出實參表達式的值,接著給對應的形參變量分配一個存儲空間,該空間的大小等于該形參類型的,然后把求出的實參表達式的值一一存入到形參變量分配的存儲空間中,成為形參變量的初值,供被調用函數(shù)執(zhí)行時使用。這種傳遞是把實參表達式的值傳送給對應的形參變量,故稱這種傳遞方式為“按值傳遞”。
使用這種方式,調用函數(shù)本不對實參進行操作,也就是說,即使形參的值在函數(shù)中發(fā)生了變化,實參的值也完全不會受到影響,仍為調用前的值。

2、按地址傳遞
如果在函數(shù)定義時將形參聲明成指針,對這樣的函數(shù)進行調用時就需要指定地址值形式的實參。這時的參數(shù)傳遞方式就是地址傳遞方式。
地址傳遞與按值傳遞的不同在于,它把實參的存儲地址傳送給對應的形參,從而使得形參指針和實參指針指向同一個地址。因此,被調用函數(shù)中對形參指針所指向的地址中內容的任何改變都會影響到實參。
按地址傳遞的好處:
1)能在函數(shù)內部通過實參地址間接地改變實參的值。
2)當所傳實參內容比較龐大時,傳址只是復制了整個實參的地址過去,指針依據(jù)同一個地址訪問實參變量。而傳值就會將實參內容整個拷貝過去,形參會跟實參占一樣大的內存,棧空間是有限的。當然了,在弱小的程序中,傳址的這個優(yōu)點不會被體現(xiàn)出來。
指針傳遞的實質:
指針傳遞參數(shù)本質上是值傳遞的方式,它所傳遞的是一個地址值。值傳遞過程中,被調函數(shù)的形式參數(shù)作為被調函數(shù)的局部變量處理,即在棧中開辟了內存空間以存放由主調函數(shù)放進來的實參的值,從而成為了實參的一個副本。值傳遞的特點是被調函數(shù)對形式參數(shù)的任何操作都是作為局部變量進行,不會影響主調函數(shù)的實參變量的值。這里是在說實參指針本身的地址值不會變

3、按引用傳遞
按值傳遞方式容易理解,但形參值的改變不能對實參產(chǎn)生影響。
地址傳遞方式雖然可以使得形參的改變對相應的實參有效,但如果在函數(shù)中反復利用指針進行間接訪問,會使程序容易產(chǎn)生錯誤且難以閱讀。
如果以引用為參數(shù),則既可以使得對形參的任何操作都能改變相應的數(shù)據(jù),又使得函數(shù)調用顯得方便、自然。引用傳遞方式是在函數(shù)定義時在形參前面加上引用運算符“&”
形參相當于是實參的別名,對形參的操作其實就是對實參的操作,在引用傳遞過程中,被調函數(shù)的形式參數(shù)雖然也作為局部變量在棧中開辟了內存空間,但是這時存放的是由主調函數(shù)放進來的實參變量的地址。被調函數(shù)對形參的任何操作都被處理成間接尋址,即通過棧中存放的地址訪問主調函數(shù)中的實參變量。正因為如此,被調函數(shù)對形參做的任何操作都影響了主調函數(shù)中的實參變量。

【C++】筆記系列均為原創(chuàng),轉載請注明轉自微號:依法編程
更多精彩資料,請關注!







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 美日韩精品 | 毛片免费在线观看 | 中文字幕手机在线观看 | 欧美精品在线观看 | 成人精品一区二区三区 | 免费看黄色大片 | 狠狠狠狠干| 国产黄色一级片 | 午夜激情网站 | 免费的黄网站 | 欧美色婷婷 | 久久在线精品 | 在线观看黄网站 | 中文字幕一区二区三区四区视频 | 成人毛片一区二区三区 | 国产精品久久久一区二区 | 国产午夜免费视频 | 老司机午夜免费精品视频 | 国产精品一区二区三区不卡 | av一二三| 成人av网站在线观看 | 日韩免费一区二区 | 久久伊人网站 | 日本成人久久 | 日韩成人中文字幕 | 岛国av免费观看 | 欧美福利在线观看 | 国产精品视频免费看 | 日本免费高清 | 欧美精品在线视频 | 日韩二三区 | 国产三级成人 | 成人免费黄色大片 | 中文字幕亚洲一区 | 日韩中文字幕视频 | 中文字字幕在线中文 | 久热精品在线 | 久久91精品 | 日韩精品一区二区三区免费视频 | 天堂a在线 | av一区二区在线观看 |