zoukankan      html  css  js  c++  java
  • 有关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的区别如何,这里先填个坑

  • 相关阅读:
    读取csv遇到的双循环
    hadoop环境配置
    mysql的查询
    mysql的基本操作
    mysql与python的交互
    设置自动获取IP和DNS
    pyecharts绘制地图
    集合 set方法
    字符串 string方法
    字典 dict方法
  • 原文地址:https://www.cnblogs.com/Chuckqgz/p/5370937.html
Copyright © 2011-2022 走看看