多個參數(shù),安順序排列 叫 參數(shù)表。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、武夷山網(wǎng)絡(luò)推廣、小程序設(shè)計、武夷山網(wǎng)絡(luò)營銷、武夷山企業(yè)策劃、武夷山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供武夷山建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4,參數(shù)5,。。。參數(shù)n
共 1 到 n 個。
printf("*****"\n");-- 沒有輸出參數(shù),沒有 輸出參數(shù)表。
printf("%d %d"\n",a,b);-- a,b 兩個參數(shù),參數(shù)表就是 a,b.
printf("%d %d %d"\n",a,b,c);-- a,b,c 3個參數(shù),參數(shù)表就是 a,b,c
形參出現(xiàn)在函數(shù)定義中,在整個函數(shù)體內(nèi)都可以使用,離開該函數(shù)則不能使用。實參出現(xiàn)在主調(diào)函數(shù)中,進入被調(diào)函數(shù)后,實參變量不能使用。
形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時,即刻釋放所分配的內(nèi)存單元。而實參在主調(diào)函數(shù)中已分配內(nèi)存單元。
實參可以是常量、變量、表達(dá)式、函數(shù)等,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,都必須具有確定的值,以便把這些值傳送給形參。
實參和形參在數(shù)量上,類型上,順序上應(yīng)嚴(yán)格一致,否則會發(fā)生類型不匹配”的錯誤。?
函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。
函數(shù)名后面的形式參數(shù)表列不可以是常量!
C語言中函數(shù)有三個概念:定義 聲明 調(diào)用
函數(shù)定義:自定義一個函數(shù),并完成相應(yīng)的代碼實現(xiàn),如:
int?max(?int?a,?int?b?)?//小括號中的?a,?b被稱為形參,用來對應(yīng)相應(yīng)的實參,因為這里的形參可對應(yīng)任意的實參值,所以,必須以變量形式體現(xiàn)。
{
return?(ab)?a:b?;?//返回a?b中的大數(shù)
}
函數(shù)聲明:用來描述一個函數(shù)的格式,在調(diào)用函數(shù)前列出。如:
int?max(?int?,?int?)?;?//這里可以省略形參變量,只列出形參類型即可。
函數(shù)調(diào)用:調(diào)用一個已實現(xiàn)的函數(shù),完成相應(yīng)的功能,如:
void?main()
{
int?x=5,y=10?;
printf(?"max?is?%d\n",?max(x,y)?);?//這里的x,y被稱為實參,可以是變量,也可以是常量。
printf(?"max?is?%d\n",?max(5,10)?);?//常量作為實參。
}
函數(shù)定義包括有參函數(shù)和無參函數(shù),無參函數(shù)為:
類型標(biāo)示符
函數(shù)名()
{
聲明語句
語句部分
}
無參函數(shù):
類型標(biāo)示符
函數(shù)名(形式參數(shù)列表)
{
聲明部分
語句部分
}
例如:
int
max(int
x,int
y)
{
int
z;
z=xy?x:y;
return(z);
}
文字不好描述啊,舉例說明如下:
void fun(int n,int m,int l){其中的int n,int m,int l(或更多項)這一列叫形參表。
……
}
void main(void){
fun(1,2,3);中的1,2,3(或更多項)這一列叫實參表。
}
形式參數(shù)就是定義函數(shù)時候的參數(shù)表,只是定義了調(diào)用時參數(shù)的個數(shù)、類型和用來引用的名字,并沒有具體的內(nèi)容。形參未被調(diào)用時,不占存儲單元。形參只在調(diào)用過程中占用存儲單元。
在調(diào)用函數(shù)時,給形參分配存儲單元,實參可以是常量、變量或者表達(dá)式,且要與形參類型一致!而且實參要有確定的值,在調(diào)用過程中實參將值賦給形參,并將實際參數(shù)對應(yīng)的數(shù)值傳遞給形式參數(shù);
調(diào)用結(jié)束后,形參單元被釋放,實參單元仍然保留
并且維持原值。所以說,實參是調(diào)用函數(shù)傳遞的具體數(shù)據(jù)。實參對形參數(shù)據(jù)傳遞時時單向傳遞。在存儲單元中是不同的單元。
下面這段程序中
#includestdio.h
int
fun(int
a,int
b)
{a+=10;
b=a+b*2;
return
a+b;
}
void
main()
{
int
x=3,y=5,z;
z=fun(x,y);
printf("%d
%d
%d\n",x,y,z);
}
a和b都是形式參數(shù),x和y都是實際參數(shù)。
程序從主函數(shù)開始運行,等到運行到z=fun(x,y)開始調(diào)用被調(diào)用函數(shù),以被調(diào)用函數(shù)的形式進行運算,然后把計算的值返回后賦值給z,這樣一個運算就算完成了。在調(diào)用過程中,形參a和b的值都發(fā)生了改變,但是在main函數(shù)中,x和y的值都未發(fā)生變化。所以說實參向形參的值的傳遞是單向的。