zoukankan      html  css  js  c++  java
  • Delphi用指针读取数组某个元素

    要点:

    1.TBytes和C++里面的数组一样,数组名就是数组的首地址。而array [..] of char 不是指针,需要用取地址符号读地址@

    2.要获取TBytes某个元素位置的指针, 应该是 @MyTByteArr[x]; 但随着数组的再分配, 这个地址是变化的

    3.SetLength设置数组长度

    4.Ord是取字符对应的数字

    program MyArray; //数组
    {$APPTYPE CONSOLE}
    uses
      SysUtils;
    
    {用指针读取数组某个元素}
    procedure MyFunc1();
    var
      i: Integer;
      p: PByte;
      MyTByteArr: TBytes;//TByte本身是个指针
      MyArrChar : array [1..50] of char;//MyArrChar本身不是指针
    begin
    {输出MyArrChar数组}
      StrCopy(@MyArrChar, '田攀学Delphi!'); //数组名@取地址作为数组地址
      Writeln(PChar(@MyArrChar));{田攀学Delphi!}
    {输出}
      SetLength(MyTByteArr, 5); //数组名作为数组地址
      for i := 0 to 4 do MyTByteArr[i] := i + 65;
      Writeln(StringOf(MyTByteArr)); {ABCDE}
    {取单个字符}
      p := PByte(MyTByteArr);
      Writeln(Chr(p^)); {A}
      p := PByte(@MyTByteArr[2]);
      Writeln(Chr(p^)); {C}
      p^ := Ord('-');   //Ord是取字符对应的数字
      Writeln(StringOf(MyTByteArr)); {AB-DE}
    end;
    
    {main主函数}
    begin
     MyFunc1;
     Readln;
    end.


     

  • 相关阅读:
    mysqllog
    清理:db上面的过期的binlog,释放磁盘空间。 (转)
    linux下shell命令trap
    mvc
    uci随笔
    luci 随笔
    shell脚本 整数比较
    lua学习
    OPENWRT make menuconfig错误之一
    openwrt 中make的使用
  • 原文地址:https://www.cnblogs.com/GodPan/p/3390426.html
Copyright © 2011-2022 走看看