我申明一个变量
var data:array[1..10] of integer;
然后我调用TFileStream.Write,第二个参数我能理解,第一个参数如果按照C语言的理解就是指针,指向一个内存区域,
但是我传data或者@data[1]会报错,而传data[1]就ok,按照c语言的理解data[1]不只是一个int变量的值吗,难道是pascal能自动识别吗?很不解。

解决方案 »

  1.   

    还有定义函数,为什么变量c不能这样定义?只能用 var c:integer,这个定义相当于是申明一个变量的引用吗?function take(a:integer; b:integer; c:^integer): Integer;
    begin
        c^ := a+b;
    end;
      

  2.   

    在delphi里 var data:array[1..10] of integer;data[1]是表示地址的!
      

  3.   

    这个就是DELPHI的特别之外了...凡是这类写入缓冲的操作, 都是直接传入缓冲的首地址的值的引用, 然后在里面再把这个引用的地址拿出来再赋值, 开源, 你可以直接看看里面怎样写的.