1. 程式人生 > >函式何時值傳遞,何時指標,何時引用傳遞總結

函式何時值傳遞,何時指標,何時引用傳遞總結

引用傳遞的性質象指標傳遞,書寫形式象值傳遞,

理由:如果只需要借用一下別名,就沒必要用指標,.

void changeVar(int &myVar,int newValue);  // 引用傳遞

這個函式第一個輸入的引數不是一個指標,它是那個將被傳遞給這個函式的原始變數的一個別名。在changeVar()函式裡對這個引數變數進行的任何操作都將反映在changeVar()函式外的那個原始變數身上。這意味著changeVar()函式與原來的一樣。

void changeVar(int myVar,int newValue){  //值傳遞,沒有返回值,起不到改變變數的作用

  myVar=newValue;

}

這使得這個函式更容易被呼叫----只需要提供一個變數名;

int main(){

int myNum=20;

changeVar(myNum,90);  // 引用和值傳遞寫法一樣, 可見引用傳遞簡單,這也是c++新增加的功能,表現了c++的強大

}

這比值傳參語法上更簡單了。

引用傳遞”方式把引數值傳遞給一個函式是C++的新增功能,這可以讓函式的呼叫語法更加簡單清晰。

提示:1.在定義函式時,還可以讓它以引用傳遞方式而不是以值傳遞方式返回: int &myFuntion();

           2.除了可以改變有關變數的值,引用傳遞方式的另一個好處是它的開銷相對要小一些:因為不需要在函式裡建立臨時變數來容納那些值,程式的記憶體佔用量當然會小一些。

           3.如果想獲得引用傳遞方式帶來的效能改善,但不想改變某個變數的值,可以把相應的輸入引數定義為一個常量:

 void myFunc(const int &myNum);

通過這樣定義的函式,可以把具體的引數直接傳遞給它:myFunc(7);