我定义了这样一个函数:
function ShowModal(var Query: TADOQuery): Boolean;
var
  FQuery: ^TADOQuery;
begin
  FQuery := @Query;
end;
然后我这样调用它:ShowModal(AdoQuery1);
请问:函数中的Query参数得到的是AdoQuery1的地址吗?如果不是那又是什么?
(请大侠详细解释,绝对给分)

解决方案 »

  1.   

    Query参数是AdoQuery1的地址,FQuery是AdoQuery1地址的地址
      

  2.   

    各位大侠:
      如果Query参数是AdoQuery1的地址,那么Query就是指针吗?FQuery也是AdoQuery1的地址,二者又是同一类型,如我这样赋值:FQuery := Query;编译器会报错,为什么?
      

  3.   

    如果你在函数中使用变量参数,那么,当函数被调用时,Delphi的编译器就会为它分配一个内存的地址,也就是Query参数是AdoQuery1的地址,但Query并不是指针,因为在函数体内,所有的参数都只能以其本来的形式存在。