zoukankan      html  css  js  c++  java
  • Delphi 的字符及字符串[4] 字符串、字符指针与字符数组


    //字符串 < > 字符数组
    var
      arr: array[0..5] of Char;
      str: string;
    begin
      {可以把字符串常量直接赋给字符数组; 但超界不行}
      arr := 'Delphi';
      ShowMessage(arr); {Delphi}
    
      {可以把字符数组直接赋给字符串变量}
      str := arr;
      ShowMessage(str); {Delphi}
    
      {其实字符串内部也是包含了一个字符数组, 所以能索引访问, 不过它的索引起始于 1}
      ShowMessage(str[1]); {D}
      ShowMessage(arr[0]); {D}
    
      {但不能把一个字符串变量赋给字符数组}
      //arr := str;     {错误; 这需要用其他手段实现, 譬如复制或移动内存}
    end;
    

    //字符数组 > 字符指针
    var
      arr: array[0..6] of Char;
      p: PChar;
    begin
      arr := 'Delphi';
      
      {如果直接把字符数组给字符指针, 结果不保险, 因为字符指针要找空字符(#0)结束}
      {把数组的最后一个元素给 #0 就可以了}
      arr[Length(arr)-1] := #0;
      p := arr;
      ShowMessage(p); {Delphi}
    
      {假如把 #0 给到中间会怎样?}
      arr[3] := #0;
      p := arr;
      ShowMessage(p); {Del; 给截断了}
    end;
    

    //字符串常量 > 字符数组常量
    const
      arr1: array[0..5] of Char = 'Delphi';
      arr2: array[0..5] of AnsiChar = AnsiString('Delphi');
    begin
      ShowMessage(arr1[0]); {D}
      ShowMessage(arr2[0]); {D}
    end;
    
  • 相关阅读:
    阶段01Java基础day26反射
    阶段01Java基础day25网络编程
    阶段01Java基础day24多线程+GUI
    阶段01Java基础day23多线程
    阶段01Java基础day22IO流03
    阶段01Java基础day21IO流02
    阶段01Java基础day18集合框架04
    阶段01Java基础day17集合框架03
    设置CMD默认路径
    MySQL 快速入门
  • 原文地址:https://www.cnblogs.com/del/p/1089344.html
Copyright © 2011-2022 走看看