1 #include<iostream>
2 using namespace std; 3 void do_(int a, int &b); 4 //a爲傳值調用
5 int main() 6 { 7 int n1=1, n2=2; 8 do_(n1, n2); 9 cout << "n1=" << n1 << endl; 10 cout << "n2=" << n2 << endl; 11 system("pause"); 12 } 13
14 void do_(int a, int &b) 15 { 16 a = 11; 17 b = 22; 18 cout << "a=" << a << endl << "b=" << b<<endl; 19 }
而關於值傳遞,指針傳遞,引用傳遞這幾個方面還會存在誤區, 全部我覺的有必要在這裏也說明一下~ios
下文會經過例子詳細說明哦函數
值傳遞:spa
形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被調用函數的角度來講,值傳遞是單向的(實參->形參),參數的值只能傳入,指針
不能傳出。當函數內部須要修改參數,而且不但願這個改變影響調用者時,採用值傳遞。code
指針傳遞:blog
形參爲指向實參地址的指針,當對形參的指向操做時,就至關於對實參自己進行的操做內存
引用傳遞:io
形參至關因而實參的「別名」,對形參的操做其實就是對實參的操做,在引用傳遞過程當中,被調函數的形式參數雖然也做爲局部變量在棧class
中開闢了內存空間,可是這時存放的是由主調函數放進來的實參變量的地址。被調函數對形參的任何操做都被處理成間接尋址,即經過stream
棧中存放的地址訪問主調函數中的實參變量。正由於如此,被調函數對形參作的任何操做都影響了主調函數中的實參變量。