array的定义问题 ( 积分: 50 )

  • 主题发起人 主题发起人 answerhyh
  • 开始时间 开始时间
A

answerhyh

Unregistered / Unconfirmed
GUEST, unregistred user!
TSectionHeaderArr = array [Word] of TImageSectionHeader;
请问,在上面这一句中,array【Word】是什么意思呢?
array后面的【】中的内容不都是定义array的下标吗?用word怎么讲呢?谢谢
 
根据DELPHI里的定义,也就是一个数组范围的定义。
例如:
Str := Array [0..10] of String;
 
建立一个工程,在窗体创建中输入以下代码
procedure TForm1.FormCreate(Sender: TObject);
Var
a : array [word] of byte;
begin
Caption := Format('low is %0:d and high is %1:d', [Low(a), High(a)]);
end;
运行一下,你就明白了,然后把word改为byte再试试,你就彻底明白了!
 
这个用法我是第一次见,写了行代码一测,Delphi编译器真是给我惊喜
 
你是在处理PE文件吧.它这个是定义65536个区段头.
Pascal语言任何有序类型都可以做数组的下标.
我们通常定义的数组不过是子界类型下标的数组而已
Type
TEnum = (eA,eB,eC);
var
CharBound:array[char] of Integer;//字符做数组下标,同理也可以使Word,Byte等
EnumBound:array[TEnum] of Integer;//枚举做数组下标
RoundBound:array['a'..'z'] of Integer;//子界做数组下标
DefaultBound:array[0..100] of Integer;//正常的数组定义,其实就是子界下标类型的数组
begin
CharBound['a'] := 10;
EnumBound[ea] := 100;
RoundBound['a'] := 200;
DefaultBound[1] := 500;
end;
 
wr960204 解释很详细, 顶一下。。
 
后退
顶部