呃···
成都創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,包括做網(wǎng)站、成都網(wǎng)站設計、SEO優(yōu)化、網(wǎng)絡推廣、整站優(yōu)化營銷策劃推廣、電子商務、移動互聯(lián)網(wǎng)營銷等。成都創(chuàng)新互聯(lián)公司為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制及解決方案,成都創(chuàng)新互聯(lián)公司核心團隊十年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設服務,在網(wǎng)站建設行業(yè)內(nèi)樹立了良好口碑。
看書會比較明白吧···
1、函數(shù)聲明: 返回類型 函數(shù)名(形參1,形參2,形參3);(以此類推,有幾個參數(shù)寫幾個)
2、函數(shù)調用:函數(shù)名 (實參1,實參2,實參3); (以此類推,有幾個參數(shù)寫幾個)
3、函數(shù)算法:返回類型 函數(shù)名(形參1,形參2,形參3)(以此類推,有幾個參數(shù)寫幾個)
{
}
1、值傳遞,創(chuàng)建變量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)?
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) ;
printf(“a=%d,b=%d/n”,a,b)
}
2、地址傳遞,相當于建立了px和py兩個指向整型的指針,其值分別為a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
3、引用傳遞,x和y直接引用a和b,對a和b操作,相當于給a、b起了別名x、y
Exchg2(int x, int y)
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
擴展資料:
printf用法:
printf()函數(shù)的調用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以"%"開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。
參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用","分開,且順序一一對應,否則將會出現(xiàn)意想不到的錯誤。
比如:
int a=1234;
printf("a=%d\n",a);
輸出結果為a=1234。
函數(shù)只有兩種傳遞方式:
1、值傳遞,又稱單向傳遞,只能把實參數(shù)值傳給形參 ,形參最后的結果不影響實參(形參改變大小 ,實參大小不變)。
2、址傳遞,通過指針,把實參的地址給形參,形參的大小可以影響實參。
擴展資料:
實參變量和形參變量之間的調用過程
1、函數(shù)的形參列于函數(shù)聲明中,在函數(shù)定義的函數(shù)體內(nèi)使用,在未出現(xiàn)函數(shù)調用時,形參不占內(nèi)存中的存儲單元。
2、將實參的值傳遞給形參,當函數(shù)被調用時,實參列在函數(shù)名后面的括號里,執(zhí)行函數(shù)調用時,實參被傳遞給形參。
3、在執(zhí)行函數(shù)期間,由于形參已經(jīng)有值,可以利用其進行相關運算。
4、通過return語句將函數(shù)值帶回到主調函數(shù)。
5、調用結束,形參單元被釋放。實參單元仍保留并維持原值(值傳遞)。
參考資料來源:百度百科-實際參數(shù)
從別人那復制來的,寫的挺詳細的,希望比你有幫助,不明白的可以M我
——————————————————————————
形式參數(shù)和實際參數(shù)
函數(shù)的參數(shù)分為形參和實參兩種。在本小節(jié)中,進一步介紹形參、實參的特點和兩者的關系。形參出現(xiàn)在函數(shù)定義中,在整個函數(shù)體內(nèi)都可以使用,離開該函數(shù)則不能使用。實參出現(xiàn)在主調函數(shù)中,進入被調函數(shù)后,實參變量也不能使用。形參和實參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調用時,主調函數(shù)把實參的值傳送給被調函數(shù)的形參從而實現(xiàn)主調函數(shù)向被調函數(shù)的數(shù)據(jù)傳送。
函數(shù)的形參和實參具有以下特點:
1. 形參變量只有在被調用時才分配內(nèi)存單元,在調用結束時,即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。函數(shù)調用結束返回主調函數(shù)后則不能再使用該形參變量。
2. 實參可以是常量、變量、表達式、函數(shù)等,無論實參是何種類型的量,在進行函數(shù)調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3. 實參和形參在數(shù)量上,類型上,順序上應嚴格一致,否則會發(fā)生類型不匹配”的錯誤。
4. 函數(shù)調用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數(shù)調用過程中,形參的值發(fā)生改變,而實參中的值不會變化。
【例】可以說明這個問題。
main()
{
int n;
printf("input number\n");
scanf("%d",n);
s(n);
printf("n=%d\n",n);
}
int s(int n)
{
int i;
for(i=n-1;i=1;i--)
n=n+i;
printf("n=%d\n",n);
}
本程序中定義了一個函數(shù)s,該函數(shù)的功能是求∑ni的值。在主函數(shù)中輸入n值,并作為實參,在調用時傳送給s 函數(shù)的形參量n( 注意,本例的形參變量和實參變量的標識符都為n,但這是兩個不同的量,各自的作用域不同)。在主函數(shù)中用printf 語句輸出一次n值,這個n值是實參n的值。在函數(shù)s中也用printf 語句輸出了一次n值,這個n值是形參最后取得的n值0。從運行情況看,輸入n值為100。即實參n的值為100。把此值傳給函數(shù)s時,形參n的初值也為100,在執(zhí)行函數(shù)過程中,形參n的值變?yōu)?050。返回主函數(shù)之后,輸出實參n的值仍為100。可見實參的值不隨形參的變化而變化。