Pascal 打包数组

  • 打包数组

    这些数组是位打包的,即每个字符或真值存储在连续的字节中,而不是使用一个存储单元,通常是一个字(4个字节或更多)。通常,字符和布尔值的存储方式应使每个字符或真值都使用一个存储单元(如单词)。这称为数据存储的解压缩模式。如果字符以连续字节存储,则存储将被充分利用。这称为数据存储的打包模式。Pascal 允许以打包模式存储数组数据。
  • 声明打包数组

    使用关键字packed array而不是array 声明压缩数组。例如-
    
    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