舅舅疼外甥是真心的吗:解释一下(pascal)

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 10:58:16
执行以下语句:
var a:array[1..max]of integer;
i:integer;
fillchar(a,sizeof(a),1);
for i:=1 to n do write(a[i]:5);
为什么输出不是1呢?

因为FillChar是按字节填的。一个Integer是2个字节,每个字节都填1。这样每个整数都变成了$0101,应该是257吧。

integer里面的二也不是输出2的

我目前知道的,fillchar只能填0,-1,true
填0: Fillchar(a, sizeof(a), 0);
填-1: Fillchar(a, sizeof(a), $FF);
填true: Fillcahr(a, sizeof(a), true);{boolean数组}{false不用填}
我虽不知道这是为什么,但是从-1那可以看出想填一个数,不见得是数字。