引用也可以作為一個函數的參數,如:我們定義交換兩個數的函數swap,將函數的參數定義成引用的形式:
1 void swap(int &p1, int &p2) //此處函數的形參都是引用 2 { 3 int p; 4 p=p1; 5 p1=p2; 6 p2=p; 7 }
為了在程序中調用該函數,在相應的主調函數的調用點處直接以變量作為實參進行調用即可,而不需要對實參變量有任何的特殊要求。如上面定義的swap函數的主調函數可寫為:
int main() { int a,b; cin >> a >> b; //輸入a,b兩變量的值 swap(a,b); //直接以變量a和b作為實參調用swap函數即可 cout << a << ' ' << b; return 0; }
當發生函數調用時,主調函數的調用點處的實參變量a和b分別傳遞給被調用函數的形參p1和p2,由於形參p1和p2定義成引用的形式,所以這時p1就是實參a的引用,p2就是實參b的引用。所以,在被調函數swap中,任何對形參p1和p2的操作實質就是對實參a和b的操作。
由此,有幾點需要注意:
本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!