zoukankan      html  css  js  c++  java
  • Delphi的字符(Char), 字符串(String), 字符串指针( PChar ), 字符数组 array of char

    Delphi有三种类型的字符:

    AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉。

    WideChar这是2字节的Unicode字符。

    Char在目前相当于AnsiChar,但在Delphi 2010 以后版本中相当于WideChar.

    记住因为一个字符在长度上并不表示一个字节,所以不能在应用程序中对字符长度进行硬编码,

    而应该使用Sizeof()函数。注意Sizeof()标准函数返回类型或实例的字节长度。

    Delphi有下列几种不同的字符串类型 String

    ShortString保留该类型是为了向后兼容 Delphi1.0,它的长度限制在255个字符内。
    ShortString[0] = len : $H- 代表 ShortString

    AnsiString是Pascal缺省的字符串类型,它由AnsiChar字符组成,其长度没有限制,
    同时与null结束的字符串相兼容。<Delphi2.0开始引入> : $H+ 代表 AnsiString

    WideString功能上类似于AnsiString,但它是由WideChar字符组成的。

    WideString没有引用计数,所以将一个WideString字符串赋值给另一个WideString字符串时,
    就需要从内存中的一个位置复制到另一个位置。这使得WideString在速度和内存的利用上不如AnsiString有效。

    缺省情况下,编译器认为是AnsiString字符串< <Delphi2010 String 默认为 WideString>

    Delphi有下列几种不同的字符串指针类型: 

    PChar指向null结束的Char字符串的指针,类似于C的char*或lpstr类型。

    PAnsiChar指向null结束的AnsiChar字符串的指针。

    PWideChar指向null结束的WideChar字符串的指针。<Delphi2010 PChar 默认为 PWideChar>

    字符数组

    静态字符数组 CharArray : array[0..Length-1] of Char;

    动态字符数组 CharArray : array of Char;

    动态数组的构造和静态数组完全不同, 它和 String 的构造相似

    String  : RefCount : Length : Char Char .... 0x00 < Delphi >

    DynArry : RefCount : Length : Char Char .... 0x00 < Programmer >

    StaArry :                   : Char Char .... 0x00 < Programmer >

                                : PChar = PChar( String ) = PChar( DynArray ) = PChar( StaArray )

    StrLen( PChar )  : 字符个数, StrLen( PChar ) * SizeOf( Char ) : 字节个数 ( WideChar = 2 )

    Length( String ) : 字符个数, Length( PChar ) * SizeOf( Char ) : 字节个数 ( AnsiChar = 1 )


  • 相关阅读:
    Android动画 interpolator的用法
    ListView的addAll方法
    界面切换动画
    ListView的setSelectionFromTop()方法与setSelection()方法的联系
    new总结
    linux中进程控制
    linux设备模型
    如何将驱动加入内核
    linux缓冲的概念fopen /open,read/write和fread/fwrite区别
    点云的滤波
  • 原文地址:https://www.cnblogs.com/shangdawei/p/3062727.html
Copyright © 2011-2022 走看看