微信登录
注册忘记密码
查看: 1251|回复: 0

[我要爆料] MT5,外汇,人工神经网络,编程,EA,简洁之1.13「指针使用方法」

[复制链接]

该用户从未签到

发表于 2022-6-15 09:01:08 | 显示全部楼层 |阅读模式
一、在C语言中指针的定义

符号

功能

定义方法与使用

*

定义指针类型

int *p; //定义P是一个指向int类型的指针

//可以理解*p是一个int类型变量

*

取内容运算符



int a; //定义a是一个int类型变量

int *p; //定义P是一个指向int类型的指针

a=*p; //取p地址指向的变量赋予a

&

地址运算符



int a; //定义a是一个int类型变量

int *p; //定义P是一个指向int类型的指针

p=&a; //取a变量的地址指向的变量赋予指针p

Print(*p); //打印P所指的数据

&

对于参数为地址

void f(int &b); //对于b为指针参数

{

Print(*b); //打印b所指的数据

}

int a; //定义a为int类型

f(&a); //把a的地址传给函数的b


二、在MQL5中关于指针的使用

*指的指的是一个对象描述符,与C语言不同

MyObject* hobject= new MyObject();





普通变量

void OnStart()

{

int a;

a=10;

Print(a); //输出a:10

f(a);

Print(a); //输出a;100

}

//+------------------------------------------------------------+

void f(int &b)//b其实是a的地址

{

b=100; //其实是改变a

}

输出:

10

100

普通变量数组

void OnStart()

{

int a[];

Print(ArraySize(a));

f(a);

Print(ArraySize(a));

Print("a[0]=",a[0]);

}

//------------------------------------------------------------

void f(int& p[])

{

ArrayResize(p,32);

p[0]=123;

}

输出:

0

32

a[0]=123

数组参数的一般使用方法:

void OnStart()

{

double some_array[4]={0.3, 1.4, 2.5, 3.6};

double a=linfunc(some_array);

//...

}

double linfunc(double x[])

{

return (x[0] + 1);

}

普通对象

class Test

{

public:

int i;

};

//+--------------------------------------------------------+

void OnStart()

{

Test *a;

a=new Test;

a.i=10;

Print(a.i);

f(a);

Print(a.i);

delete(a);

}

//+--------------------------------------------------------+

void f(Test *b)

{

b.i=20;

}

输出:

10

20

对象数组

class Test

{

public:

int i;

};

//------------------------------------------------------------

void OnStart()

{

Test a[];

ArrayResize(a,1); //分配空间

Print(ArraySize(a));//输出空间大小:1

f(a);

Print(ArraySize(a));//输出空间大小:2

}

//------------------------------------------------------------

void f(Test& b[])

{

ArrayResize(b,2); //分配空间

}

输出:

1

2



声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则