请教高手一个奇怪问题,关于指针的
在Delphi7,如果一个类未被初始化,它指向的是哪里?
在form上随便放个button,写入如下的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
aa: TButton;
begin
aa.Top := 0;
end;
运行,竟然发现Form自己的位置改变了。
把aa的类型换成TControl,TForm等等,结果都是一样。
aa在没有被创建之前,应该是nil才对,而上面的测试中
aa指向的好像是self,为什么?
把aa的类型换成TStringList,
procedure TForm1.Button1Click(Sender: TObject);
var
aa: TStringList;
begin
aa.Text := 'hehe';
end;
执行会报错,这和我理解的一样;
另外,是不是局部变量和全局变量初值有区别?当aa为局部变量时,
跟踪显示aa为不可访问,为全局变量时,aa初值为nil。在C语言中,
只保证全局指针会被初值化为NULL,局部指针的值可能是随机的。
请问Delphi的pascal语言中是否也有这样的问题?