說(shuō)下傳值,傳址以及引用吧。

成都創(chuàng)新互聯(lián)-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、成都服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),服務(wù)電話:18980820575
傳值,就是把你的變量的值傳遞給函數(shù)的形式參數(shù),實(shí)際就是用變量的值來(lái)新生成一個(gè)形式參數(shù),因而在函數(shù)里對(duì)形參的改變不會(huì)影響到函數(shù)外的變量的值。
傳址,就是傳變量的地址賦給函數(shù)里形式參數(shù)的指針,使指針指向真實(shí)的變量的地址,因?yàn)閷?duì)指針?biāo)傅刂返膬?nèi)容的改變能反映到函數(shù)外,也就是能改變函數(shù)外的變量的值。
傳引用,實(shí)際是通過(guò)指針來(lái)實(shí)現(xiàn)的,能達(dá)到使用的效果如傳址,可是使用方式如傳值。
說(shuō)幾點(diǎn)建議:
如果傳值的話,會(huì)生成新的對(duì)象,花費(fèi)時(shí)間和空間,而在退出函數(shù)的時(shí)候,又會(huì)銷毀該對(duì)象,花費(fèi)時(shí)間和空間。
因而如果int,char等固有類型,而是你自己定義的類或結(jié)構(gòu)等,都建議傳指針或引用,因?yàn)樗麄儾粫?huì)創(chuàng)建新的對(duì)象。
值傳遞。
實(shí)參與形參數(shù)據(jù)傳遞有兩種方式:值傳遞與地址傳遞。
地址傳遞的形式為
int
a=b;
也就是我們所說(shuō)的引用,但引用只有C++中有,所以C語(yǔ)言都是值傳遞的。
有些人有誤解:認(rèn)為C語(yǔ)言的int
*p=a;不也是按地址傳遞嗎?其實(shí)不是這樣的。
深入理解值傳遞與地址傳遞就會(huì)發(fā)現(xiàn):
值傳遞是:把實(shí)參的值傳給一個(gè)變量(形參)。所以int
*p=a也是把a(bǔ)的地址值傳給了指針變量p
地址傳遞是:直接把地址傳進(jìn)來(lái),沒(méi)有賦給任何變量,這樣在函數(shù)體內(nèi)對(duì)形參的操作也就是對(duì)實(shí)參地操作。有這種功能的也就是引用()了。
函數(shù)只有兩種傳遞方式:
1、值傳遞,又稱單向傳遞,只能把實(shí)參數(shù)值傳給形參 ,形參最后的結(jié)果不影響實(shí)參(形參改變大小 ,實(shí)參大小不變)。
2、址傳遞,通過(guò)指針,把實(shí)參的地址給形參,形參的大小可以影響實(shí)參。
擴(kuò)展資料:
實(shí)參變量和形參變量之間的調(diào)用過(guò)程
1、函數(shù)的形參列于函數(shù)聲明中,在函數(shù)定義的函數(shù)體內(nèi)使用,在未出現(xiàn)函數(shù)調(diào)用時(shí),形參不占內(nèi)存中的存儲(chǔ)單元。
2、將實(shí)參的值傳遞給形參,當(dāng)函數(shù)被調(diào)用時(shí),實(shí)參列在函數(shù)名后面的括號(hào)里,執(zhí)行函數(shù)調(diào)用時(shí),實(shí)參被傳遞給形參。
3、在執(zhí)行函數(shù)期間,由于形參已經(jīng)有值,可以利用其進(jìn)行相關(guān)運(yùn)算。
4、通過(guò)return語(yǔ)句將函數(shù)值帶回到主調(diào)函數(shù)。
5、調(diào)用結(jié)束,形參單元被釋放。實(shí)參單元仍保留并維持原值(值傳遞)。
參考資料來(lái)源:百度百科-實(shí)際參數(shù)
分享名稱:c語(yǔ)言函數(shù)傳參格式 c語(yǔ)言 傳參
鏈接分享:http://chinadenli.net/article42/dojigec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、、標(biāo)簽優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)