理解 Delphi 的类(十) - 深入方法[22] - 指针参数

{现在这个函数并没有 var 前缀, 也就是说参数应该不会被修改的}  
function MyFun(p: PInteger): Integer; {PInteger 是 Integer 的指针类型}
begin
  p^ := p^ * 2;
  Result := p^;
end;


{测试}
procedure TForm1.Button1Click(Sender: TObject);
var
  i,x: Integer;
begin
  i := 8;

  x := MyFun(@i);           {调用函数}
  ShowMessage(IntToStr(x)); {16}

  {现在 i 的值应该不会被修改, 但...}
  ShowMessage(IntToStr(i)); {16}

{
  没有 var 或 out 前缀的参数, 应该是传值的;
  有 var 或 out 的参数是传地址的;
  
  指针就是一个地址, 尽管没有指定传地址, 但事实上就是给了一个地址, 
  所以参数值也会改变!
}
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值