zoukankan      html  css  js  c++  java
  • 数组类型

    //数组类型 

    { 数组类型定义了一组指定类型的元素序列,
    在方括号中填入下标值就可访问数组中的元素。
    定义数组时,方括号也用来指定可能的下标值。
    例如,下面的代码中定义了一个有24个整数的数组:
     }

    type
      DayTemperatures = array [1..24] of Integer;
    {
    在数组定义时,你需要在方括号中填入一个子界类型的值,
    或者用两个有序类型的常量定义一个新的子界类型,子界类型指定了数组的有效索引。
    由于子界类型指定了数组下标值的上界和下界,
    那么下标就不必象C、C++、JAVA和其他语言那样必须从零开始。
    由于数组下标基于子界类型,因此Delphi能够对它们进行范围检查。
    不合法的常量子界类型将导致一个编译时间错误;
    如果选上编译器范围检查选项,那么超出范围的下标值将导致一个运行时间错误。
    使用上述数组定义方法,定义一个DayTemperatures 类型的变量如下:
    }


    type
      DayTemperatures = array [1..24] of Integer;
    var 
      DayTemp1: DayTemperatures;

    procedure AssignTemp; 
    begin 
      DayTemp1 [1] := 54;
      DayTemp1 [2] := 52;
      ...
      DayTemp1 [24] := 66;
      DayTemp1 [25] := 67; // compile-time error

    //数组可以是多维的,如下例:

    type
      MonthTemps = array [1..24, 1..31] of Integer;
      YearTemps = array [1..24, 1..31, Jan..Dec] of Integer;

    { 这两个数组建立在相同的核心类型上,
    因此你可用前面定义的数据类型声明它们,如下面代码所示:
     }

    type
      MonthTemps = array [1..31] of DayTemperatures;
      YearTemps = array [Jan..Dec] of MonthTemps;

    { 上例的声明把索引的次序前后调换了一下,但仍允许变量之间整块赋值。
    例如:把一月份的温度值赋给二月份:
     }

    var
      ThisYear: YearTemps;
    begin
      ...
      ThisYear[Feb] := ThisYear[Jan];
    {
    你也能定义下标从零开始的数组,不过这似乎不太合逻辑,
    因为你需要用下标2来访问数组第三项。
    然而,Windows一直沿用了从零开始的数组(因为它是基于C语言的),
    并且Delphi 控件库也在往这方向靠拢。

    使用数组时,你总要用标准函数Low和 High来检测它的边界,Low和 High返回下标的下界和上界。
    强烈建议使用Low和 High操作数组,特别是在循环中,
    因为这样能使代码与数组范围无关,
    如果你改变数组下标的范围声明,Low和High代码不会受影响;
    否则,如果代码中有一个数组下标循环体,那么当数组大小改变时你就不得不更新循环体的代码。
    Low和 High将使你的代码更易于维护、更稳定。

    注意:顺便提一下,使用Low和High不会增加系统运行额外开销。
    因为在编译时,他们已被转换成常数表达式,而不是实际函数调用。
    其他简单的系统函数也是这样。

    Delphi主要以数组属性的形式使用数组。
    我们已经在 TimeNow 例子中看到过数组属性,也就是ListBox控件的Items属性。

    注意:Delphi 4 的Object Pascal中增加了动态数组,
    所谓动态数组是在运行时动态分配内存改变数组大小。
    使用动态数组很容易,不过我认为在这里讨论这类数组不合适。
    你将在第八章看到对Delphi 动态数组的描述。 
    }




  • 相关阅读:
    How To Scan QRCode For UWP (4)
    How To Crop Bitmap For UWP
    How To Scan QRCode For UWP (3)
    How To Scan QRCode For UWP (2)
    How To Scan QRCode For UWP (1)
    How to change windows applicatioin's position via Win32 API
    8 Ways to Become a Better Coder
    How to resize or create a thumbnail image from file stream on UWP
    C# winform压缩文件夹带进度条
    MS ACCESS MID函数
  • 原文地址:https://www.cnblogs.com/xe2011/p/2518897.html
Copyright © 2011-2022 走看看