首页
学习
活动
专区
工具
TVP
发布

MQL4编程——引用

定义

简单的说就是给一个变量或者对象取一个别名(引用和被引用的共享存储单元,要用修饰符&)。

引用的用法

在MQL4中通过调试只接受引用作为函数参数的用法,在函数参数传递过程中,有两种传递方式。

按值传递

实参和形参都要分配内存空间,在传递过程中实参拷贝一份数据到函数形参中进行运算。

int a(int c) //定义函数a,int c是形式参数

{

int e;

e=c++;

return(e);

}

主函数:

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的类设计中,函数参数中的所有对象都必须通过引用传递,在数据类型中的目标指针也要涉及到引用的问题,所以提前做一个铺垫。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190222G05V7E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券