在C語言中,實參將值傳給函數(shù)中的形參,實現(xiàn)了自上而下的值傳遞,就可以調(diào)用函數(shù)了。
成都創(chuàng)新互聯(lián)公司長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為北海街道企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),北海街道網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
舉個淺顯一點的例子吧:
#include
void
main()
{
int
swap(int
x,int
y);
int
a,b;
......
swap(a,b);
}
int
swap(int
x,int
y)
{
......
}
在主函數(shù)中,將實參a,b的值傳遞給被調(diào)用函數(shù)中的形參x,y,即將a,b分別代入x,y中計算,即達(dá)到了調(diào)用的目的。
分兩種,一種是按值傳遞,一種是按地址傳遞,
按值傳遞就是在子函數(shù)中開辟出一個臨時內(nèi)存空間,將傳遞的數(shù)值保存在這個空間中,當(dāng)子函數(shù)結(jié)束后,這個內(nèi)存空間就會釋放了!
按地址傳遞則是把主函數(shù)開辟的某個內(nèi)存空間首地址傳遞給子函數(shù),子函數(shù)可以直接讀寫主函數(shù)上這段內(nèi)存空間,當(dāng)子函數(shù)結(jié)束后,這部分空間不會被釋放,主函數(shù)將繼續(xù)使用這段空間!
不對,在C語言中,傳值有地址傳值和參數(shù)傳值,參數(shù)傳值只能將實參傳值給形參,所以A選項正確。C語言中的外部變量是可以在函數(shù)之間傳遞數(shù)據(jù)的。
C語言中的自動變量是默認(rèn)的變量,實際上是函數(shù)中的局部變量,所以D選項正確。全局變量一經(jīng)定義都是需要分配內(nèi)存單元,在程序運行過程中自始至終都會占用固定的空間,在未知內(nèi)存情況下,最好不要使用全局變量。
函數(shù)調(diào)用時,值可以雙向傳遞,并沒有限制使用全局變量還是局部變量,需要根據(jù)程序的邏輯需要進(jìn)行選擇。
擴展資料
C語言參數(shù)傳遞:
1、值傳遞
參數(shù)傳遞只把變量a的值傳遞給了變量p,此時變量a與變量p是值相同的兩個不同變量,在內(nèi)存不同的兩個地址中,所以對變量p賦值只是修改了變量p的值,并不能修改變量a的值。總結(jié)一句話就是:值傳遞不傳遞變量本身,只傳遞變量的值。
2、引用傳遞
與值傳遞不同,func的參數(shù)是int p,表示引用傳遞。如輸出所示,通過引用傳遞,變量a的地址與變量p是相同的,也就是說引用傳遞把a的地址傳給了變量p,所以對變量p進(jìn)行賦值之后,變量a的值也改變了,因為變量a與變量p實際是同一個變量。
3、指針傳遞
指針傳遞,顧名思義,int *p表明p是一個指針變量,調(diào)用func(a)是把變量a的內(nèi)存地址傳遞過去賦值給指針變量p,此時指針變量p的值是變量a的內(nèi)存地址,故可看到輸出p為efbfde2c(變量a的內(nèi)存地址)。
*p是對指針p的值(即變量a的內(nèi)存地址)進(jìn)行取值,相當(dāng)于*a,所以對*p進(jìn)行賦值也就改變了變量a的值。
網(wǎng)站標(biāo)題:c語言調(diào)用函數(shù)傳值,c++傳值調(diào)用
轉(zhuǎn)載來源:http://jinyejixie.com/article10/hsopgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、響應(yīng)式網(wǎng)站、移動網(wǎng)站建設(shè)、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)