W
wuqvei
Unregistered / Unconfirmed
GUEST, unregistred user!
Type
SwapProc=Procedure(Var X,Y:Integer);
MathFunc=Function(Xouble)ouble;
{以上是类型声明部分}
Var
P:SwapProc;
F:MathFunc;
{以上把P说明为SwapProc 类型的变量,把F说明为MathFunc类型的变量}
Procedure Swap(var A,B:integer);
Var
Temp:Integer;
Begin
Temp:=A;
A:=B;
B:=Temp;
End;
Function Tan(Angleouble);
Begin
Tan:=Sin(Angle)/Cos(Angle);
End;
{以上定义了一个过程和一个函数}
{以上把Swap过程赋给P变量,把Tan函数赋给F变量}
P:=Swap;
F:=Tan;
P(I,J)
{相当于调用Swap(I,J)}
X:=F(X)
{相当于X:=tan(X)}
1 既然过程变量是指针类型,为什么P:=Swan 和F:=Tan 不应该时P := @Swan 和F := @Tan,就是所取函数的地址
2 另外@P操作是返回无类型指针(Delphi操作手册里讲到)吗,而且返回的这个指针是指向Swap的 也就是 @P = @Swap 这种说法对吗? 而不是返回P变量的地址吗?
谢谢!
SwapProc=Procedure(Var X,Y:Integer);
MathFunc=Function(Xouble)ouble;
{以上是类型声明部分}
Var
P:SwapProc;
F:MathFunc;
{以上把P说明为SwapProc 类型的变量,把F说明为MathFunc类型的变量}
Procedure Swap(var A,B:integer);
Var
Temp:Integer;
Begin
Temp:=A;
A:=B;
B:=Temp;
End;
Function Tan(Angleouble);
Begin
Tan:=Sin(Angle)/Cos(Angle);
End;
{以上定义了一个过程和一个函数}
{以上把Swap过程赋给P变量,把Tan函数赋给F变量}
P:=Swap;
F:=Tan;
P(I,J)
{相当于调用Swap(I,J)}
X:=F(X)
{相当于X:=tan(X)}
1 既然过程变量是指针类型,为什么P:=Swan 和F:=Tan 不应该时P := @Swan 和F := @Tan,就是所取函数的地址
2 另外@P操作是返回无类型指针(Delphi操作手册里讲到)吗,而且返回的这个指针是指向Swap的 也就是 @P = @Swap 这种说法对吗? 而不是返回P变量的地址吗?
谢谢!