C 中值傳遞 指標傳遞 引用傳遞的總結

2021-07-08 19:39:45 字數 754 閱讀 4354

1. 值傳遞

void swap(int a,int b)

int main(){

int x=1;

int y=2;

swap(&x,&y);

cout《輸出結果是2,1;2,1。實參x,y, 形參a,b的位址同上,但是a,b的內容分別為0xffbef938(x的位址),0xffbef934(y的位址),*a也就是0xffbef938記憶體中存放的內容,即x的值

3. 引用傳遞:

void swap(int &a,int &b)

{int temp;

temp=a;

a=b;

b=temp;

coutint x=1;

int y=2;

swap(x,y);

cout《輸出是2,1;2,1。實參x,y的位址同上。然而與指標傳遞不同的是,形參a,b的位址也與x,y相同,即0xffbef938, 0xffbef934。這樣一來,交換a,b就相當於交換x,y。

引用傳遞:形參相當於是實參的「別名」,對形參的操作其實就是對實參的操作,在引用傳遞過程中,被調函式的形式引數雖然也作為區域性變數在棧

中開闢了記憶體空間,但是這時存放的是由主調函式放進來的實參變數的位址。被調函式對形參的任何操作都被處理成間接定址,即通過

棧中存放的位址訪問主調函式中的實參變數。正因為如此,被調函式對形參做的任何操作都影響了主調函式中的實參變數。

C 中值傳遞 指標傳遞 引用傳遞的總結

c 中值傳遞 指標傳遞 引用傳遞的總結 指標傳遞和引用傳遞一般適用於 函式內部修改引數並且希望改動影響呼叫者。對比值傳遞,指標 引用傳遞可以將改變由形參 傳給 實參 實際上就是直接在實參的記憶體上修改,不像值傳遞將實參的值拷貝到另外的記憶體位址中才修改 指標 引用傳遞的另外一種用法是 當乙個函式實際...

引數中,值傳遞 指標傳遞 引用傳遞的區別

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 賦值完畢後實參就和形參沒有任何聯絡。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。include 值傳遞示例 void swap int a,int b 函式呼叫後...

c 中值傳遞和引用傳遞

物件在方法間傳值,傳遞的是物件的值,或者這個物件的引用的副本 首先建立乙個物件 public class orderinfo 建立乙個方法去改變這個物件 private void change orderinfo order 然後通過方法的呼叫檢視變化 private void btnchange ...