七月网

fillchar(fillchar什么意思)

七月网2780

一、delphi fillchar函数

Fillchar是Turbo/Borland Pascal的System单元的一个标准过程,使用格式是:FillChar(var

fillchar(fillchar什么意思)

X; Count: Word; value),功能是,把指定变量X在内存段中所占的低Count个字节赋为相同的值value,

其中value是填充的值,只能是Byte、Char或Boolean等单字节类型的值。在Free

Pascal中稍加扩展为FillChar(var X; Count: Longint; value),功能没变。

[例]:Fillchar通常用来给数据赋初值。

var a:array [1..10] of arrtype;

1.real(其他实数类型差不多)使得a中的元素全部成为0.0

2.integer(byte,word,longint,shortint都相同)全部为0

这里使用了函数sizeof(a),其功能是返回变量a所占的总字节数,如上例返回:

1.real sizeof(a)的值为60(每个元素占6个字节,10个元素共占60个字节)

single sizeof(a)的值为40(每个元素占4个字节,10个元素共占40个字节)

double sizeof(a)的值为80(每个元素占8个字节,10个元素共占80个字节)

extended sizeof(a)的值为100(每个元素占10个字节,10个元素共占100个字节)

comp sizeof(a)的值为80(每个元素占8个字节,10个元素共占80个字节)

2.integer(word) sizeof(a)的值为20(每个元素占2个字节,10个元素共占20个字节)

3.byte(shortint) sizeof(a)的值为10(每个元素占1个字节,10个元素共占10个字节)

4.longint sizeof(a)的值为40(每个元素占4个字节,10个元素共占40个字节)

5.boolean sizeof(a)的值为10(每个元素占1个字节,10个元素共占10个字节)

6.char sizeof(a)的值为10(每个元素占1个字节,10个元素共占10个字节)

所以例的结果是将数组a的所有元素(全部字节)用0来填充,注意对不同类型的数据,对“0”的“解释”是截然不同的!对整型或实型量来

讲,所有字节均为0,则该量也为0;对boolean型量(一个字节)来讲,0表示false(非0数表示true),则该量为false;对char型

量(一个字节)来讲,0表示ASCII码值为0的字符,则该量为#0。

二、函数fillchar有功能和作用WORRY!!!

定义:Procedure FillChar( Var X; Count: Longint; Value: Char or Byte);

意为:对一个Char类型的数组X进行Count次赋值,当Value为Char类型时,直接赋值;若Value为Byte类型时,将Value作为AscII赋值给每个单元。

被引申为:对一个内存块,每8个二进制位赋值Value,赋值Count次,长度为:Count*8个二进制位。

FillChar是一种很常用的函数,大部分赋值都是用FillChar完成的,因为对内存的块赋值,比使用循环要快得多。

a: array[1..10000] of arrtype;

FillChar(a,sizeof(a),0);//效果是:将数组清空,所有元素赋值为0

FillChar(a,sizeof(a),1);//效果是:将数组每一个元素都赋值为257,解释如下:Integer占16个二进制,使用FillChar后,每一个字节被赋值为1,所以每一个元素的二进制为:0000000100000001,即257

三、pascal 中,过程fillchar是什么意思怎么用

Pascal(一种类似C语言的编程语言)的一个内存块赋值函数。

定义:Procedure FillChar( Var X; Count: Longint; Value: Char or Byte);

意为:对一个Char类型的数组X进行Count次赋值,当Value为Char类型时,直接赋值;若Value为Byte类型时,将Value作为AscII赋值给每个单元。

被引申为:对一个内存块,每8个二进制位赋值Value,赋值Count次,长度为:Count*8个二进制位。

FillChar是一种很常用的函数,大部分赋值都是用FillChar完成的,因为对内存的块赋值,比使用循环要快得多。

a: array[1..10000] of arrtype;

FillChar(a,sizeof(a),0);//效果是:将数组清空,所有元素赋值为0

FillChar(a,sizeof(a),1);//效果是:将数组每一个元素都赋值为257,解释如下:Integer占16个二进制,使用FillChar后,每一个字节被赋值为1,所以每一个元素的二进制为:0000000100000001,即257

好了,文章到此结束,希望可以帮助到大家。