Delphi中的值传递与址传递

Delphi中的值传递与址传递

值传递

值:保存在内存单元中的值。
var
  {在内存中声明了一个内存单元Value,用来保存Integer类型的数据}
  Value: Integer;
  {在内存单元Value中保存了数据1,即值为:1}
  Value:= 1;

值传递:将一个内存单元中的值复制到另一个内存单元中。
{在过程TransmitValue执行时,会声明一个临时内存单元TempValue,并将输入参数Value的值1赋值给TempValue
 Value将与TempValue都等于1,但这是两个1。如果此时Value改变它的值是不会影响到TempValue,反之一样。
}
procedure TransmitValue(TempValue : Integer);
begin
  TempValue := TempValue * 2;
end;

{将内存单元Index中的1赋值给TempValue}
TransmitValue(Value);

注意:值传递在传递完成后实参与形参指向不同的对象,尽管对象的内容一样。

址传递

址:内存单元的物理地址。
var
  {在内存中声明了一个内存单元Address,其物理地址为:'0x12345',用来保存String类型的数据,}
  Address: String;
注:'址'是引用类型
  {在内存单元Address中保存了数据'址'的物理地址,即值为:'0x232'}
  Address:= '址‘;

 
 
址传递:将一个内存单元的物理地址赋值给另一个内存单元中。
{在过程TransmitAddress执行时,会声明一个临时内存单元TempAddress,并将输入参数Address的内存地址'0x12345'赋值给TempAddress}
procedure TransmitAddress(var TempAddress : String);
begin
  TempAddress := TempAddress + '呵呵’;
end;

{将内存单元Address的物理地址赋值给TempAddress}
TransmitAddress(Address);

 
  
注意:址传递在传递完成后实参与形参都指向同一个对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值