c++函數參數傳遞方式

1、非飲用傳遞  例子:

int swap(int a,int b)

{

int temp = b;

b=a;

a=temp;

return a;

}

int  num=swap(3,5);//num還是3,因爲非飲用傳遞只改變了函數體內部的值,實參的值未發生任何變化。所以swap()不起作用



2、指針形參  例子

void swap(int *a,int *b)

{

int temp = &b;

&b=&a;

&a=temp;

}

int i=3;int j=5;int *a=&i;int *b=&j;

swap(a,b);//則a和b指向的值發生了改變



3、飲用形參方法

void swap(int &a,int &b)

{

int temp = b;

b=a;

a=temp;;

}

int i=3;int j=5;swap(i,j);//結果i和j同樣進行了交換


4、傳遞指向指針的引用

void swap(int *&a,int *&b)

{

int *temp=b;

b=a;

a=temp;

}

int i=3;int j=5;int *a=&i;int *b=&j;

cout<<"before swap:"<<"*a:"<<*a<<"*b"<<*b<<endl;

swap(a,b);

cout<<"after swap:"<<"*a:"<<*a<<"*b"<<*b<<endl;

結果是,before是3,5;after後是5,3

//也就是說指針的值被交換了。而int *&a可以看做是一個int類型指針的別名





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章