C語(yǔ)言中形參和實(shí)參詳解及實(shí)例代碼
形式參數(shù)和實(shí)際參數(shù)
函數(shù)的參數(shù)分為形參和實(shí)參兩種。在本小節(jié)中,進(jìn)一步介紹形參、實(shí)參的特點(diǎn)和兩者的關(guān)系。形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用,離開(kāi)該函數(shù)則不能使用。實(shí)參出現(xiàn)在主調(diào)函數(shù)中,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用。形參和實(shí)參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調(diào)用時(shí),主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
函數(shù)的形參和實(shí)參具有以下特點(diǎn):
1.形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。
2.實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等,無(wú)論實(shí)參是何種類(lèi)型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值,輸入等辦法使實(shí)參獲得確定值。
3.實(shí)參和形參在數(shù)量上,類(lèi)型上,順序上應(yīng)嚴(yán)格一致,否則會(huì)發(fā)生類(lèi)型不匹配”的錯(cuò)誤。
4.函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過(guò)程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化。
【例】可以說(shuō)明這個(gè)問(wèn)題。
">#include<stdio.h>
int add(int num)
{
int i;
for(i=0;i<100;i++)
{
num=num+i;
}
printf("num=%d\n",num);
}
int main()
{
int num;
printf("輸入一個(gè)數(shù)\n");
scanf("%d",&num);
add(num);
printf("n=%d\n",num);
return 0;
}
本程序中定義了一個(gè)函數(shù)add,該函數(shù)的功能是求num+i的累加值。在主函數(shù)中輸入num值,并作為實(shí)參,在調(diào)用時(shí)傳送給add函數(shù)的形參量nuum。在主函數(shù)中用printf語(yǔ)句輸出一次n值,這個(gè)num值是實(shí)參num的值。在函數(shù)add中也用printf語(yǔ)句輸出了一次n值,這個(gè)num值是形參最后取得的n值0。從運(yùn)行情況看,輸入num值為6。即實(shí)參num的值為6。把此值傳給函數(shù)add時(shí),形參num的初值也為6,在執(zhí)行函數(shù)過(guò)程中,形參num的值變?yōu)?956。返回主函數(shù)之后,輸出實(shí)參num的值仍為6??梢?jiàn)實(shí)參的值不隨形參的變化而變化。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)超市管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)超市管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
深入探究C++中的容器適配器與仿函數(shù)技術(shù)
C++中的容器適配器和仿函數(shù)是實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)與算法的重要技術(shù),容器適配器可以將一個(gè)容器轉(zhuǎn)換為另一個(gè)形式,仿函數(shù)則可以自定義數(shù)據(jù)類(lèi)型的比較、排序、計(jì)算等行為,提高程序的靈活性和可重用性2023-04-04
使用VS2022開(kāi)發(fā)在線遠(yuǎn)程編譯部署的C++程序(圖文詳解)
這篇文章主要介紹了使用VS2022開(kāi)發(fā)可以在線遠(yuǎn)程編譯部署的C++程序,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
c語(yǔ)言字符串函數(shù)strstr,strtok,strerror的使用和實(shí)現(xiàn)
C語(yǔ)言中的字符串處理函數(shù)如strtok、strstr和strerror對(duì)于字符串的處理有著重要的作用,strtok函數(shù)用于分割字符串,它通過(guò)sep參數(shù)指定的分隔符來(lái)分割str參數(shù)指定的字符串,并返回分割后的每個(gè)子字符串2024-10-10
C語(yǔ)言與C++項(xiàng)目實(shí)現(xiàn)相互調(diào)用
extern?“c”的作用可以實(shí)現(xiàn)c語(yǔ)言和c++相互調(diào)用,本文就詳細(xì)的介紹一下C語(yǔ)言與C++項(xiàng)目實(shí)現(xiàn)相互調(diào)用,感興趣的可以了解一下2022-01-01

