unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //全局变量 var gLobal_int:Integer; Global_p:pchar; procedure TForm1.Button1Click(Sender: TObject); begin if @Global_int <>nil then begin ShowMessage('global_int己被分配内存'); showmessage(IntToStr(global_int)); end; if global_p=nil then begin ShowMessage('global_p没有被分配内存'); ShowMessage(global_p); end; end; //局部变量 procedure TForm1.Button2Click(Sender: TObject); var local_int,local_int2:Integer; oldaddr,newaddr:Integer; local_p:PChar; begin oldaddr:=Integer(@local_int); local_int:=7; newaddr:=Integer(@local_int); if oldaddr=newaddr then ShowMessage('地址值没有变化,声明local_int时就分配内存'); ShowMessage(IntToStr(local_int2)); if local_p <>nil then ShowMessage(local_p); end; end.