声明   procedure MyFunction ( var Buffer )某过程
  var Buffer: array[0..39] of Char;
begin
  MyFunction (Buffer[0]);       //调用正确
  MyFunction (Buffer); //调用错误!!需要的是不可理解的是:
function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;
显然也是Buffer,但是在例子中却是一个Buffer类型的变量:var
  BufferA: PChar;
  BufferB: array[0..2047] of Char;
begin
  try
      Buffer := PChar(AllocMem(iFileLength + 1));
      iBytesRead := FileRead(iFileHandle, BufferA, iFileLength);     //为什么是正确的?
      iBytesRead := FileRead(iFileHandle, BufferB[0], iFileLength);  //为什么是正确的?
      iBytesRead := FileRead(iFileHandle, BufferB, iFileLength);     //为什么是错误的???
  finally
      FreeMem(Buffer);
  end