我定义了一个结构
type
AppInfo=record
xmin:integer;
passmin:integer;
end;
PAppInfo=^AppInfo;
无论是这个函数
function outofmin(info:PAppinfo):boolean;
begin
if info^.passmin>=info^.xmin then
result:=true
else
begin
inc(info^.passmin);
showmessage(inttostr(info^.passmin));
end;
end;
还是这个函数
function outofmin(var info:Appinfo):boolean;
begin
if info.passmin>=info.xmin then
result:=true
else
begin
inc(info.passmin);
showmessage(inttostr(info.passmin));
end;
end;结果这个passmin的值老是等于1
我知道改变形参的值不能返回实参,但我不是已经用了指针来做了吗?
这段代码有什么问题吗?或者说我的理解出了问题?
麻烦大家了。
type
AppInfo=record
xmin:integer;
passmin:integer;
end;
PAppInfo=^AppInfo;
无论是这个函数
function outofmin(info:PAppinfo):boolean;
begin
if info^.passmin>=info^.xmin then
result:=true
else
begin
inc(info^.passmin);
showmessage(inttostr(info^.passmin));
end;
end;
还是这个函数
function outofmin(var info:Appinfo):boolean;
begin
if info.passmin>=info.xmin then
result:=true
else
begin
inc(info.passmin);
showmessage(inttostr(info.passmin));
end;
end;结果这个passmin的值老是等于1
我知道改变形参的值不能返回实参,但我不是已经用了指针来做了吗?
这段代码有什么问题吗?或者说我的理解出了问题?
麻烦大家了。
AppInfo=record
xmin:integer;
passmin:integer;
end;
PAppInfo=^AppInfo;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function outofmin(var info:Appinfo):boolean;
end;var
Form1: TForm1;implementation{$R *.dfm}
function Tform1.outofmin(var info:Appinfo):boolean;
begin
if info.passmin>=info.xmin then
result:=true
else
begin
inc(info.passmin);
showmessage(inttostr(info.passmin));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
TT:AppInfo;
begin
TT.xmin:=4;
TT.passmin:=2;
self.outofmin(TT);
end;