问题1:
var a:1..100;
begin
readln(a);
end;
执行后输入120,为何没有出错?问题2:
var sz:array[1..10] of integer;i:integer;
begin
for i:=1 to 20 do
writeln(sz[i]);
end;
为何执行后没有出错,数组sz不是只有10个数组元素吗?问题3:
执行如下语句后
setlength(a,5);
setlength(a,10);
数组a是否是在第一次定义的长度基础上增加5,原a[1]至a[5]中已存数据是否受发生变化(实验证明是不变的)?
var a:1..100;
begin
readln(a);
end;
执行后输入120,为何没有出错?问题2:
var sz:array[1..10] of integer;i:integer;
begin
for i:=1 to 20 do
writeln(sz[i]);
end;
为何执行后没有出错,数组sz不是只有10个数组元素吗?问题3:
执行如下语句后
setlength(a,5);
setlength(a,10);
数组a是否是在第一次定义的长度基础上增加5,原a[1]至a[5]中已存数据是否受发生变化(实验证明是不变的)?
解决方案 »
- DELPHI如何知道MSSQL回滚了?
- 麻煩各位DELPHI高手能給小弟以下代碼按句注解,研究很久了還是搞不清楚DELPHI是如何獲得版本號的,小弟不甚感謝
- 购买DSPACK把摄像头录制成非AVI格式视频的例子
- 请教HTTP GET和域名转向的问题
- ReportBuilder做报表能否指定每页显示记录数?
- 我想打开一个工程时自动打开一些窗口,怎么办?
- 來聊聊有沒有人遇到跟我一樣狀況...
- 关于合并单元格的问题,急
- 关于wndproc函数的问题
- 请问再多线程里调用方法是否是并行执行的?
- 請問DELPHI 7 的某欄位為NULL
- 发一段登录的代码,求解答~~~~~~~~~~~~~~~~~~~~~~~~~~
var
a :1..100;
begin
a := 120;
end;var
sz :array[1..10] of integer;
i :integer;
begin
for i :=1 to 20 do
sz[i] := i;
end;
2 因为没有全部代码,所以只能从结果推测你的声明的是全局变量。x86是按照页面机制管理内存的,一个页面默认是4K。全局变量一般在pe文件的可读写段,映射到内存后,正好处于一个页面的尾部,并且下一个页面没有写权限的概率不是很大。因此在读写上虽然没表现出来什么问题,但实际上写的话,可能造成其它的全局变量的值被修改。
另外,内存访问是不可能造成IO错误的。
3 yes
第二段代码在默认设置下编译通过,没有报错。