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