1、值傳遞:形參時實參的拷貝,改變函式形參並不影響函式外部的實參,這是最常用的一種傳遞方式,也是最簡單的一種傳遞方式。只需要傳遞引數,返回值是return考慮的;使用值傳遞這種方式,呼叫函式不對實參進行操作,也就是說,即使形參的值發生改變,實參的值也完全不受影響。
2、指標傳遞:指標傳遞其實是值傳遞的一種,它傳遞的是位址。值傳遞過程中,被調函式的形參作為被調函式的區域性變數來處理,即在函式的棧中有開闢了記憶體空間來存放主調函式放進來實參的值,從而成為乙個副本。因為指標傳遞的是外部引數的位址,當呼叫函式的形參發生改變時,自然外部實參也發生改變。
3、引用傳遞:被調函式的形參雖然也作為區域性變數在棧中開闢了記憶體空間,但在棧中放的是由主調函式放進來的實參變數的位址。被調函式對形參的任何操作都被間接定址,即通過棧中的存放的位址訪問主調函式中的中的實參變數(相當於乙個人有兩個名字),因此形參在任意改動都直接影響到實參。
1、值傳遞
#include using namespace std;
void swap(int,int);
int main()
{ int a=1,b=2;
cout<
2、指標傳遞
根據圖1 可知:x(y)是乙個指向外部實參位址的指標,*x(*y)是指標的內容,如果改變了*x(*y)也必然導致外部實參的改變。
這是因為x或y的指標指向a或b的位址,因此*x*y值的交換導致外部實參發生變化。
3、引用傳遞
#include using namespace std;
void swap(int &x,int &y);
int main()
{ int a=1,b=2;
cout<
引用實參和形參時一樣的,只是名字不同而已。
C 函式呼叫之 值傳遞 指標傳遞 引用傳遞
1 值傳遞 形參時實參的拷貝,改變函式形參並不影響函式外部的實參,這是最常用的一種傳遞方式,也是最簡單的一種傳遞方式。只需要傳遞引數,返回值是return考慮的 使用值傳遞這種方式,呼叫函式不對實參進行操作,也就是說,即使形參的值發生改變,實參的值也完全不受影響。2 指標傳遞 指標傳遞其實是值傳遞的...
c 值傳遞 指標傳遞 引用傳遞
值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作 引...
c 函式傳參 值傳遞 指標傳遞 引用傳遞
1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的。如果在執行函式期間形參的值發生變化,並不傳回實參。應為在呼叫函式時,形參和實參不是同乙個儲存單元。2 傳遞變數的指標 形參是指標變數,實參是乙個變數的位址,呼叫函式時,形參指向實參變數單元。可以通過形參指標修改實參的值。3 c 提供...