美文网首页
二(六)变量

二(六)变量

作者: 牛在汇上飞 | 来源:发表于2018-10-20 16:14 被阅读0次

    变量

    声明变量
    变量在使用前必须先声明其存在。
    使用惟一的名称表达标识变量。
    要声明一个变量,必须指定其类型和惟一名称。变量声明不能是运算符。
    简单的类型有 :
    char, short, int, long, uchar, ushort, uint, ulong // 都属于整型;
    color // 表示RGB颜色的整数;
    datetime // 日期和时间,一个无符号整数,包含自1970年1月1日0小时以来的秒数;
    bool // 布尔值 结果为 真(true)和假(false);
    double // 双精度浮点数;
    float // 单精度浮点数;
    string // 字符串。

    例子:
    string szInfoBox;
    int nOrders;
    double dSymbolPrice;
    bool bLog;
    datetime tBegin_Data = D'2004.01.01 00:00';
    color cModify_Color = C'0x44,0xB9,0xE6';

    复合或复合类型:
    结构是使用其他类型构造的复合数据类型。
    struct MyTime
    {
    int 小时; / / 0-23
    int 分钟; / / 0-59
    int 秒; / / 0-59
    };

    MyTime strTime; // 变量之前声明的结构MyTime
    在声明结构类型之前,您不能声明结构类型的变量。

    数组
    数组是同类型数据的索引序列:
    int a[50]; // 50个整数的一维数组。
    double m[7][50]; // 二维数组,
    //每个数字由50个数字组成。
    MyTime t[100]; 包含MyTime等元素的数组

    只有整数可以是数组索引。且为不可超过四维的数组。数组元素的编号从0开始。一维数组的最后一个元素的数字比数组大小要小1。这意味着对包含50个整数的数组的最后一个元素的调用将以[49]的形式出现。同样地也关系到多维数组:维度从0索引到维度范围-1。示例中二维数组的最后一个元素将显示为m[6][49]。
    静态数组不能声明为timeseries,即, ArraySetAsSeries()函数不能应用于它们,该函数将数组元素的访问权限设置为从头到尾。如果您希望提供与timeseries中相同的对数组的访问,请使用dynamic array对象。
    如果试图访问数组范围之外的内容,执行子系统将生成一个关键错误,程序将被停止。

    访问说明符
    访问指标定义编译器如何访问变量、结构或类的成员。
    const说明符将变量声明为常量,并且不允许在运行时更改该变量。在声明变量时允许对其进行一次初始化。
    例子:
    int OnCalculate (const int rates_total, // 输入时间序列的大小
    const int prev_computing, // 调用前一个棒
    const date & time[], // 开盘时间
    const double& open[], // 开
    const double& high[], // 高
    const double& low[], // 低
    const double& close[], // 收
    const long& tick_volume[], // tick量
    const long& volume[], // 量
    const int& spread [] // 滑点
    );
    要访问结构和类的成员,使用以下限定符:
    public // 允许不受限制地访问变量或类方法
    protected // 允许访问这个类的方法,以及从公共继承类的方法。其他途径是不可能的;
    private // 只允许从同一个类的方法访问变量和类方法。
    virtual // 只应用于类方法(但不应用于结构方法),并告诉编译器这个方法应该放在类的虚函数表中。

    存储类
    有三个存储类: 静态存储类static、 输入存储类input 和外部输入存储类extern。存储类的这些修饰符显式地向编译器表明,相应的变量分布在预先分配的内存区域(称为全局池)中。此外,这些修饰符表示对变量数据的特殊处理。如果在本域级别声明的变量不是静态变量,则在程序堆栈上自动分配该变量的内存。当超出块的可见区域时,也会自动执行为非静态数组分配的内存释放,而块中声明了数组。

    相关文章

      网友评论

          本文标题:二(六)变量

          本文链接:https://www.haomeiwen.com/subject/qfhmzftx.html