过程当中的参数困惑定义一个全局整型变量i:integer=50;
初始化为50
我有一过程
pdMySet(a:integer)
begin
a:=100;
end;
在一个按钮的click事件中调用该过程
tform1.button1onclick(...);
begin
pdMyset(i);
end;
大家都知道 这样之后i 的值还是50不怎么会变,如果定义时
用pdMySet(var a:integer);
begin
a:=100;
end;
那么 调用之后i的值就变成100
如果我在一个窗体中放一个edit1:Tedit;
如果我的过程当中的参数是对像,譬如
pdMySet(myEdit:TEdit);
begin
myedit.text:='100';
end
那么我在按钮click事件中
tform1.button1onclick(...);
begin
pdMyset(Edit1);
end;
那么不管我 过程是pdMySet(myEdit:TEdit);
还是pdMySet(var myEdit:TEdit);
调用之后 edit1.text中显示的绝大部分的都是 100
想问的就是 对像做参数时候,是不是因为传入是指针
在过程 或者是 函数中对形参做的改变 会 影响 实际参数???????
--
{$WebSiteName}的站长理解的不错,对像作为参数时是传入的指针
---
对像是指针, 他做参数时不管您是否指定 var, 他绝大部分的都是 var 变量.
----------------
del.cnblogs.com---
指针,不怎么会---
对于复杂数据(Data)类型的数据(Data)一般均用指针来传递,如果只想获取其Copy,则应该用对像的Clone---
对像不光在做参数的时候是指针,任何时候他绝大部分的都是指针~~---
引用 1 楼 hsmserver 的回复:
{$WebSiteName}的站长理解的不错,对像作为参数时是传入的指针