如何用fillchar给数组赋值成1(pascal)

数组为longint
2024-10-30 08:39:58
推荐回答(2个)
回答1:

这个貌似没法赋值
因为fillchar 是对位操作(可以理解为每一个字节)
longint是四个字节
用fillchar是给这四个字节都赋值为相同的值
但是要使longint=1,则前三个字节为0,最后一个是1,
这样不符合fillchar的操作,所以不能

fillchar要么对longint赋值为0要么是maxlongint(这两种最常用)
要赋值为1的话就只能用循环了

完毕,给分吧

补充:回楼下
赋值maxlongint的方法是
fillchar(a,sizeof(a),127);或者fillchar(a,sizeof(a),$7f);
(其中a是longint数组)
即把每一个字节都赋值为最大值,那么4个字节都最大,加起来就是满的,所以是maxlongint

同理,对于任何整类型数组,照此法行都可以赋值为本类型的最大值(如integer是maxint;byte是127)

回答2:

longint没法直接赋成1,
可以赋成0,也就是fillchar(a,sizeof(a),0);
或者可以赋成-1,也就是fillchar(a,sizeof(a),255);
pas_zoujp所言有误,不可以赋maxlongint.