全局变量与局部变量
代码
1 unit Unit1;
2 interface
3 uses
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls;
6 type
7 TForm1 = class(TForm)
8 Button1: TButton;
9 Button2: TButton;
10 procedure Button1Click(Sender: TObject);
11 procedure Button2Click(Sender: TObject);
12 private
13 { Private declarations }
14 public
15 { Public declarations }
16 end;
17 var
18 Form1: TForm1;
19 implementation
20 {$R *.dfm}
21 //全局变量
22 var
23 gLobal_int:Integer;
24 Global_p:pchar;
25 procedure TForm1.Button1Click(Sender: TObject);
26 begin
27 if @Global_int <>nil then
28 begin
29 ShowMessage('global_int己被分配内存');
30 showmessage(IntToStr(global_int));
31 end;
32 if global_p=nil then
33 begin
34 ShowMessage('global_p没有被分配内存');
35 ShowMessage(global_p);
36 end;
37 end;
38 //局部变量
39 procedure TForm1.Button2Click(Sender: TObject);
40 var
41 local_int,local_int2:Integer;
42 oldaddr,newaddr:Integer;
43 local_p:PChar;
44 begin
45 oldaddr:=Integer(@local_int);
46 local_int:=7;
47 newaddr:=Integer(@local_int);
48 if oldaddr=newaddr then
49 ShowMessage('地址值没有变化,声明local_int时就分配内存');
50 ShowMessage(IntToStr(local_int2));
51 if local_p <>nil then
52 ShowMessage(local_p);
53 end;
54 end.
2 interface
3 uses
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls;
6 type
7 TForm1 = class(TForm)
8 Button1: TButton;
9 Button2: TButton;
10 procedure Button1Click(Sender: TObject);
11 procedure Button2Click(Sender: TObject);
12 private
13 { Private declarations }
14 public
15 { Public declarations }
16 end;
17 var
18 Form1: TForm1;
19 implementation
20 {$R *.dfm}
21 //全局变量
22 var
23 gLobal_int:Integer;
24 Global_p:pchar;
25 procedure TForm1.Button1Click(Sender: TObject);
26 begin
27 if @Global_int <>nil then
28 begin
29 ShowMessage('global_int己被分配内存');
30 showmessage(IntToStr(global_int));
31 end;
32 if global_p=nil then
33 begin
34 ShowMessage('global_p没有被分配内存');
35 ShowMessage(global_p);
36 end;
37 end;
38 //局部变量
39 procedure TForm1.Button2Click(Sender: TObject);
40 var
41 local_int,local_int2:Integer;
42 oldaddr,newaddr:Integer;
43 local_p:PChar;
44 begin
45 oldaddr:=Integer(@local_int);
46 local_int:=7;
47 newaddr:=Integer(@local_int);
48 if oldaddr=newaddr then
49 ShowMessage('地址值没有变化,声明local_int时就分配内存');
50 ShowMessage(IntToStr(local_int2));
51 if local_p <>nil then
52 ShowMessage(local_p);
53 end;
54 end.



浙公网安备 33010602011771号