4 回答

TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊
swap()實現(xiàn)傳給函數(shù)的兩個參數(shù)的交換。
參數(shù)int &n1是以引用調(diào)用的方式傳遞參數(shù)給swap();
swap()要實現(xiàn)的功能是交換兩個變量,也就是兩個參數(shù)的值。

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊
是交換實際的值,但傳遞地址,這是c++中的應(yīng)用,比如調(diào)用swap的方法是:swap(a,b),調(diào)用函數(shù)void swap(int &n1,int &n2)的時候給a、b起了一個別名n1、n2,像小名一樣,都說的同一個人,這樣修改n1也就修改了a,修改n2也就是修改了b。

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊
swap()實現(xiàn)傳給函數(shù)的兩個參數(shù)的交換。
這里swap()沒有返回值,它之所以能實現(xiàn)值的交換,是因為參數(shù)是引用類型的。對形參的操作也影響了實際參數(shù)的值,所以a,b交換能被保存下來。
如果是這樣的函數(shù)void swap(int n1,int n2)
那么只是在調(diào)用函數(shù)時交換了n1和n2的值,但當(dāng)調(diào)用結(jié)束后,a,b的值并沒發(fā)生改變。
這就是有引用和沒有用引用的區(qū)別

TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊
&n1 是取變量n1的地址
你可以理解成 swap(int *n1,int *n2)
但是在傳參的時候要寫成
swap(&a,&b); 因為函數(shù)需要兩個int類型的指針變量
指針變量保存的是地址信息
a,b是你自己定義的int 類型變量 通過&(取地址運(yùn)算符)取他們的地址
這樣通過引用傳參實現(xiàn)的功能就是交換a和b的值
- 4 回答
- 0 關(guān)注
- 1006 瀏覽
添加回答
舉報