MQL4編程—值傳遞和引用傳遞

定義c++

簡單的說就是給一個變量或者對象取一個別名(引用和被引用的共享存儲單元,要用修飾符&)。函數

引用的用法設計

在MQL4中經過調試只接受引用做爲函數參數的用法,在函數參數傳遞過程當中,有兩種傳遞方式。指針

按值傳遞

實參和形參都要分配內存空間,在傳遞過程當中實參拷貝一份數據到函數形參中進行運算。調試

int  a(int c)  //定義函數a,int c是形式參數

{

int e;

e=c++;

return(e);

}

主函數:code

void OnStart()

{

int b=5;   //實際參數

Print("函數接受實參值傳遞給形參:",a(b));

Print("實參是否變更:",b);

}

做爲值傳遞的過程當中,函數獲取的參數值只是實參拷貝的一個副本,實參自己不參加運算,b依舊是5,沒有發生改變,函數獲取實參進行自加後結果是6。對象

做爲函數參數傳遞引用

在這種狀況下形參被當作是實參的別名,形參就是實參,二者公用內存空間,這大大下降了內存使用,並且使用的是變量名,總體更高效,更直觀。內存

int  a(int &c)  //定義函數a,int &c是形式參數

{

int e;

e=c++;

return(e);

}

主函數:變量

void OnStart()

{

int b=5;   //實際參數

Print("函數接受實參值傳遞給形參:",a(b));

Print("實參是否變更:",b);

}

傳遞引用的過程當中,改變形參其實就是改變實參,函數形參獲取實參進行自加後結果是6,實參5也變成了6,達到了雙向傳遞的功能。數據類型

總結

引用能夠大大下降內存使用,速度更快,並且在MQL4的類設計中,函數參數中的全部對象都必須經過引用傳遞,在數據類型中的目標指針也要涉及到引用的問題,因此提早作一個鋪墊。

相關文章
相關標籤/搜索