关于指针初始化的问题 - 回复"下雨天2"
2008-05-02 19:44
288 查看
问题来源: http://www.cnblogs.com/del/archive/2008/05/02/1179416.html#1179645
一个全局变量可以初始化, 如果你不主动初始化, 也会被自动初始化;
一个局部变量不能被初始化, 虽然你不能主动初始化, 但它会被赋予一个随机值.
一个全局变量可以初始化, 如果你不主动初始化, 也会被自动初始化;
一个局部变量不能被初始化, 虽然你不能主动初始化, 但它会被赋予一个随机值.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} var i1: Integer; {会被自动初始化为 0} p1: Pointer; {会被自动初始化为 0, 也就是空指针} const BoolStr: array[Boolean] of string = ('False','True'); procedure TForm1.FormCreate(Sender: TObject); var i2: Integer; {会被初始化为一个随机值} p2: Pointer; {会被初始化为一个随机地址} b: Boolean; begin ShowMessage(IntToStr(i1)); {0} ShowMessage(IntToStr(i2)); {14909552} ShowMessage(IntToStr(Integer(p1))); {0} ShowMessage(IntToStr(Integer(p2))); {4570636} {判断 p1、p2 两个指针是否是已赋值} b := Assigned(p1); ShowMessage(BoolStr[b]); {False} b := Assigned(p2); ShowMessage(BoolStr[b]); {True} {释放指针后再判断} p1 := nil; p2 := nil; b := Assigned(p1); ShowMessage(BoolStr[b]); {False} b := Assigned(p2); ShowMessage(BoolStr[b]); {False} end; end.
相关文章推荐
- 关于全局变量的初始化问题与野指针
- 关于字符指针和字符数组初始化的问题
- 关于百度地图SDK在" SDKInitializer.initialize(this);"初始化报空指针的问题
- 回复:lerit的关于对象中字段的初始化问题
- 关于c语言中double指针的初始化问题
- 关于C++项目指针对象未被初始化的问题(0xcdcdcd)
- 关于C++项目指针对象未被初始化的问题(0xcdcdcd)
- 关于声明指针初始化问题
- 关于字符串指针初始化std::string的一个小问题
- 关于指针数组的初始化和输入 问题
- 关于const指针和指向const对象的指针的初始化问题
- 关于数据类型与指针的小笔记--初始化问题&&数组
- 有关于在Java 类的静态初始化块中创建一个自身实例的问题。
- c中关于指针的声明和定义的一些问题
- 关于业务用例抽象问题对网友的回复
- 关于百度TTS初始化闪退问题
- 关于Javascript循环体变量声明与初始化的效率问题
- 关于AE9.2License初始化问题
- 关于servletContext.getRealPath()空指针的问题
- Android--关于Cursor空指针的问题