复数类型
内置 complex 类型是一种具有两个 双精度浮点数类型字段的结构体:
struct complex
|
该结构体在类型转换章节中介绍过,因为它将两个 double 数字“转换”为一个新实体,类似于 结构体转换为字节数组及相反转换的方式。此外,如果不先描述结构体,读者可能很难理解这个类型。
complex 结构体没有构造函数,因此复数必须使用初始化列表创建。
complex c = {re, im}; |
对于复数,目前只能执行简单算术和比较运算:=、+、-、*、/、+=、-=、*=、/=、==、!=。对于 数学函数 的支持将在今后增加。
注意!不能将复数变量声明为 MQL 程序的输入(使用 input 关键字)。
后缀 'i' 用于描述复数(虚数部分)常量,例如:
const complex x = 1 - 2i;
|
在下面的例子(脚本 Complex.mq5)中,创建了一个复数并计算了其平方值。
input double r = 1;
|
如果采用默认参数,该脚本将输出以下结果:
c=(1,2) / ok
|
其中,圆括号中的数字对是该复数的字符串表示。
complex 类型可通过值传递为 MQL 函数的一个参数(不同于普通结构体,普通结构体仅可通过引用传递)。对于从 DLL导入的函数,complex 类型应仅通过引用传递。