形參:全稱為"形式參數(shù)"是在定義函數(shù)名和函數(shù)體的時候使用的參數(shù),目的是用來接收調(diào)用該函數(shù)時傳如的參數(shù).
站在用戶的角度思考問題,與客戶深入溝通,找到吳興網(wǎng)站設(shè)計與吳興網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋吳興地區(qū)。
實參:全稱為"實際參數(shù)"是在調(diào)用時傳遞個該函數(shù)的參數(shù).
形參和實參的類型必須要一致,或者要符合隱含轉(zhuǎn)換規(guī)則,
當形參和實參不是指針類型時,在該函數(shù)運行時,形參和實
參是不同的變量,他們在內(nèi)存中位于不同的位置,形參將實
參的內(nèi)容復制一份,在該函數(shù)運行結(jié)束的時候形參被釋放,
而實參內(nèi)容不會改變.
而如果函數(shù)的參數(shù)是指針類型變量,在調(diào)用該函數(shù)的過程
中,傳個函數(shù)的是實參的地址,在函數(shù)體內(nèi)部使用的也是
實參的地址,即使用的就是實參本身.所以在函數(shù)體內(nèi)部
可以改變實參的值.
給你一個很簡單的例子:
int f(int b) /*b為形參*/
{ return b;}
main()
{int a=1;
printf("%d",f(a));/*a為實參*/
}
例如:你自己定義一個函數(shù)
int
max(int
a,int
b){...
}
在這里a,b就是形參,接下來你會調(diào)用max函數(shù),如:
void
main()
{
int
c,int
d;
.....
max(c,d);
}
這里c
d就是實參
所謂形參就是在函數(shù)定義體中的參數(shù)
所謂實參就是在調(diào)用函數(shù)時實際傳進函數(shù)的參數(shù)
形參就是形式參數(shù),用一個變量代表大家。實參就是實際參數(shù),用一個 確切的數(shù)值代替形式參數(shù),可以是表達式。實際參數(shù)與形式參數(shù)的參數(shù)個數(shù)、類型和順序都應一樣,如果不一樣的話,系統(tǒng)會強制轉(zhuǎn)換,這樣會造成數(shù)據(jù)的丟失。實 參向形參的傳遞是值的傳遞。
這個值就是對實參的表達式進行計算的結(jié)果,它可以是常量值、變量值、數(shù)組元素、函數(shù)值等。如果實參是數(shù)組名了,那么它傳送的就是地址的值了。比如:
double power(double x ,int n)定義一個雙精度參數(shù)
power(3.0,5) 調(diào)用
x n 是形參,3.0,5是實參。如果上面定義的是整形 double power(int x ,int n),下面調(diào)用的是power(3.3,5)那么實參中3.3會被轉(zhuǎn)換成3,一部分數(shù)據(jù)丟失了。
函數(shù)的參數(shù)分為形參和實參兩種。
形參出現(xiàn)在函數(shù)定義中,在整個函數(shù)體內(nèi)都可以使用,離開該函數(shù)則不能使用。實參出現(xiàn)在主調(diào)函數(shù)中,進入被調(diào)函數(shù)后,實參變量也不能使用。
形參和實參的功能是作數(shù)據(jù)傳送,發(fā)生函數(shù)調(diào)用時,主調(diào)函數(shù)把實參的值傳送給被調(diào)函數(shù)的形參從而實現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
舉個例子:
定義一個函數(shù)s=f(a,b),功能是將a和b的差賦值給s,那么,a和b就是這個函數(shù)的兩個參數(shù)。
擴展資料:
C語言的參數(shù)傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調(diào)用函數(shù)的形參只有函數(shù)被調(diào)用時才會臨時分配存儲單元,一旦調(diào)用結(jié)束占用的內(nèi)存便會被釋放
值傳遞和地址傳遞,傳遞的都是實參的一個拷貝
C語言中實參和形參之間的數(shù)據(jù)傳遞是單向的“值傳遞”,單向傳遞,只能由實參傳給形參,反之不行
輸出格式并沒有選擇%p而是選擇了%d,因為十進制的數(shù)看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include stdio.h
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實參為a,b\na=%d,地址為%d\nb=%d,地址為%d\n\n",a,a,b,b);
swap(a,b);
printf("after:實參為a,b\na=%d,地址為%d\nb=%d,地址為%d\n\n",a,a,b,b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y\nx=%d,地址為%d\ny=%d,地址為%d\n\n",x,x,y,y);
}