Pascal - 压缩数组
这些数组是位封装的,即每个字符或真值存储在连续的字节中,而不是使用一个存储单元,通常是一个字(4 个字节或更多)。
通常,字符和布尔值的存储方式是每个字符或真值像单词一样使用一个存储单元。 这称为数据存储的解包模式。 如果字符存储在连续的字节中,则存储空间得到充分利用。 这称为数据存储的打包模式。 Pascal允许数组数据以打包模式存储。
声明压缩数组
压缩数组是使用关键字压缩数组而不是数组来声明的。 例如 −
type pArray: packed array[index-type1, index-type2, ...] of element-type; var a: pArray;
以下示例声明并使用二维压缩数组−
program packedarray; var a: packed array [0..3, 0..3] of integer; i, j : integer; begin for i:=0 to 3 do for j:=0 to 3 do a[i,j]:= i * j; for i:=0 to 3 do begin for j:=0 to 3 do write(a[i,j]:2,' '); writeln; end; end.
当上面的代码被编译并执行时,会产生以下结果 −
0 0 0 0 0 1 2 3 0 2 4 6 0 3 6 9