形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數.
實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數.
形參和實參的型別必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指標型別時,在該函式執行時,形參和實
參是不同的變數,他們在記憶體中位於不同的位置,形參將實
參的內容複製一份,在該函式執行結束的時候形參被釋放,
而實參內容不會改變.
而如果函式的引數是指標型別變數,在呼叫該函式的過程
中,傳個函式的是實參的地址,在函式體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函式體內部
可以改變實參的值.
給你一個很簡單的例子:
int f(int b) /*b為形參*/
{ return b;}
main()
{int a=1;
printf("%d",f(a));/*a為實參*/
}
這只是兩個簡單的抽象概念而已,用不著鑽牛角尖。簡單的講,定義的是形參,呼叫的是實參。
明白了麼?
形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數.
實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數.
形參和實參的型別必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指標型別時,在該函式執行時,形參和實
參是不同的變數,他們在記憶體中位於不同的位置,形參將實
參的內容複製一份,在該函式執行結束的時候形參被釋放,
而實參內容不會改變.
而如果函式的引數是指標型別變數,在呼叫該函式的過程
中,傳個函式的是實參的地址,在函式體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函式體內部
可以改變實參的值.
給你一個很簡單的例子:
int f(int b) /*b為形參*/
{ return b;}
main()
{int a=1;
printf("%d",f(a));/*a為實參*/
}
這只是兩個簡單的抽象概念而已,用不著鑽牛角尖。簡單的講,定義的是形參,呼叫的是實參。
明白了麼?