delphi 共享变量(Absolute Address)

来源:互联网 发布:天津大学网络继续教育 编辑:程序博客网 时间:2024/06/06 11:39

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

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的第一个字节的值(即为字符串的长
度)

 

 

原创粉丝点击