前面我們說的都是無參數(shù)無返回值的函數(shù),實際程序中,我們經(jīng)常使用到帶參數(shù)有返回值的函數(shù)。
一、函數(shù)參數(shù)傳遞
1.形式參數(shù)和實際參數(shù)
函數(shù)的調(diào)用值把一些表達(dá)式作為參數(shù)傳遞給函數(shù)。函數(shù)定義中的參數(shù)是形式參數(shù),函數(shù)的調(diào)用者提供給函數(shù)的參數(shù)叫實際參數(shù)。在函數(shù)調(diào)用之前,實際參數(shù)的值將被拷貝到這些形式參數(shù)中。
2.參數(shù)傳遞
先看一個例子:
void a(int); /*注意函數(shù)聲明的形式*/
main()
{
int num;
scanf(%d,&num);
a(num); /*注意調(diào)用形式*/
}
void a(int num_back) /*注意定義形式*/
{
printf(%d\n,num_back);
}
在主函數(shù)中,先定義一個變量,然后輸入一個值,在a()這個函數(shù)中輸出。當(dāng)程序運行a(num);這一步時,把num的值賦值給num_back,在運行程序過程中,把實際參數(shù)的值傳給形式參數(shù),這就是函數(shù)參數(shù)的傳遞。
形參和實參可能不只一個,如果多于一個時,函數(shù)聲明、調(diào)用、定義的形式都要一一對應(yīng),不僅個數(shù)要對應(yīng),參數(shù)的數(shù)據(jù)類型也要對應(yīng)。
void a(int,float);
main()
{
int num1;
float num2;
scanf(%d,&num1);
scanf(%f,&num2);
a(num1,num2);
}
void a(int num1_back,float num2_back)
{
printf(%d,%f\n,num1_back,num2_back);
}
上面的例子中,函數(shù)有兩個參數(shù),一個是整型,一個是浮點型,那么在聲明、調(diào)用、定義的時候,不僅個數(shù)要一樣,類型也要對應(yīng)。如果不對應(yīng),有可能使的編譯錯誤,即使沒錯誤,也有可能讓數(shù)據(jù)傳遞過程中出現(xiàn)錯誤。
相關(guān)推薦:計算機(jī)等級考試二級C語言教程匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |