implemention
..
var i:array[1..2] of integer;procedure TForm1.okClick(Sender:TObject)
var a:integer;
begin
for a:=0 to 255 do
i[a]:=a;end;
为何数组i不受限制??
..
var i:array[1..2] of integer;procedure TForm1.okClick(Sender:TObject)
var a:integer;
begin
for a:=0 to 255 do
i[a]:=a;end;
为何数组i不受限制??
估计是delphi错误处理机制的一个bug吧!
如果改成
for a:=0 to 255 do
begin
i[a]:=a;
showmessage(inttostr(i[a]));
end;
就会报错了
就会报错了。为了加快代码运行速度,缺省情况下不进行范围校验。这种代码的安全性是你的责任。
应该使用 for a:=Low(i) to High(i) do
这样就不会错了。另外,你的代码风格不好。
一般循环变量使用i,临时数组变量可以使用a.
i[a]:=a;
在没有使用{$R+}的情况下
也许可以正常运行,
但是在大型项目中,奇怪的错误很容易由此产生。var i:array[1..2] of integer;
n:integer;procedure TForm1.okClick(Sender:TObject);
var a:integer;
begin
n := 100;
for a:=0 to 255 do
i[a]:=a;
showmessage(inttostr(n));//现在是几?100吗?不,是3。
end;
实际上如果在implementation之前的
var a:array[1..2] of integer;
b:string;
...
..... click(sender...)
b:='ABCDEFG';
a[2]:=255;这时b就全部是乱码了.
对 需要你来控制了
当然不是。
你可以用C试试看。
过河小卒
自已没有学好就不要乱发言,
你以为 Borland 的工程师就是白痴?
靠!!!!
我是delphi的大力支持者我什么时候说过borland的工程师是白痴了?!
我只是不懂问一下子吗什么时候也未有发出反对delphi的声音!
实际上我认为delphi是难得的一门好语言比vb功能强,比vc容易学
没弄清楚别人的意思别乱放~~~