网上冲浪 | 反毒杀毒 | 菜鸟进阶 | 网络安全 | 实用技术 | 网络安全 | 操作系统 |
工具软件 | 电脑医院 | 网上赚钱 | 网页制作 | 网络营销 | 经典教程 | IT趣 谈 |
当前位置:IT快活林快活林学院操作系统

过程中的参数困惑

过程当中的参数困惑定义一个全局整型变量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}的站长理解的不错,对像作为参数时是传入的指针

[]作者:本站整理  来源:不祥