delphi 共享变量(Absolute Address)

共址变量是这样一种变量:声明时可以将其与其它的某个变量相绑定,绑定后二个变
量在内存中存储位置的起始地址相同。声明共址变量的格式为

var
  v1:type1 absolute v2;

 

其中v2是一个声明过的变量。程序在编译时会将v1与v2的起始地址设置为相同位置。我
们以一个例子来说明:

 

program ShareAddress;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
  c:AnsiChar;
  i:Byte absolute c;
  str:WideString;
  leng:byte absolute str;
begin
  try
    c:='A';
    Writeln(i);


    str:='stringlength';
    Writeln(leng);
    readln;

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.


上例中i被声明成变量c的共址变量,这样一来变量i与变量c将在内存中的起始位置相
同。i在内存中占用一个字节,当攻取i的值时,系统会将变量c的第一个字节的值当成
是i的值,而c中第一个字节的值是字符‘A’,故i的值为65,leng的值为字符串str的第一个字节的值(即为字符串的长
度)

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值