有关pascal的填充语句小技巧

背景

今天打代码,用了一次fillchar(a,sizeof(a),1);

结果a数组(of longint)所赋的值却不是1

探索

···pascal

program fillchartest;

var f:array[1..100]of Longint;

begin

fillchar(f,sizeof(f),1);

writeln(f[1]);

end.

···

以上一段代码,输出结果为

16843009

转换为2进制,发现其结果为0000 0001 0000 0001 0000 0001 0000 0001

那么,fillchar的用法到底如何?

显然,fillchar的赋值方式,是一段空间中,八位八位地重复赋值

扩展

其实还有一些语句,有着不同的用途

fillword

赋的值是双字节整数

如:fillchar(a,sizeof(a) div 2,32767)

filldword

所赋值是四字节的

如:filldword(a,sizeof(a) div 4,2147483647)

fillbyte

给元素类型为byte的数组赋值

至于fillbyte和fillchar的区别如何,这里先填个坑

上一篇:Mysql -- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法


下一篇:JavaScript编程规范