关于数组的认识03
让编程改变世界
Change the world by program
谈完静态聊动态
静态数组在使用之前其类型及元素个数是已经确定的,这样的话需求就使得静态数组结构的局限性显而易见 – 灵活性大大降低了! 而动态数组没有指定数组元素的个数,因此在程序运行时可为动态数组动态地开辟存储空间。一维动态数组的定义格式及功能如下: [格式] [codesyntax lang="delphi"]Type 数组类型名 = Array of 基类型[/codesyntax] 这不是和静态的一样?!大家稍安勿躁,小甲鱼把静态数组的定义拉出来给大家比较比较: 静态:数组类型名 = Array[下标类型] of 基类型 动态:数组类型名 = Array of 基类型 [对比] 与静态数组类型相比,动态数组没有“下标类型”的定义。定义了数组类型后,就可以定义数组变量。 与静态数组一样,也可以将定义类型和变量合二为一: [codesyntax lang="delphi"]
Arr_Str: Array of Integer;[/codesyntax]
多维动态数组
[格式] [codesyntax lang="delphi"]Type 数组类型名 = Array of Array of…Array of(基类型)[/codesyntax] 定义动态数组类型时,有几个保留字“array”就是几维动态数组类型。 由于动态数组没有明确数组的大小,在程序设计中可以调用SetLength 标准过程来设置数组的大小。 [例如] [codesyntax lang="delphi"]
var Arr_Str: Array of Integer; begin SetLength(Arr_Str, 10);//10个整型元素 end;[/codesyntax] [例如] [codesyntax lang="delphi"]
var Arrs: Array ofArray of Integer; begin SetLength(Arrs, 2, 5); end;[/codesyntax] 定义了一个二维动态数组,并确定其为2行5列。 注意: 关于动态数组,应注意以下几点。 (1)动态数组的下标是从零开始。 (2)动态数组各行的长度可以不相等。 (3)无论是静态数组还是动态数组,都可以调用标准函数Low、High 和Length 来返回数组的最小下标值、最大下标值和数组的长度。 请务必亲自尝试体验!注意,亚当和夏娃正是因为敢于尝试、乐于尝试才有我们今天!