哇,说得那么复杂!!!pchar是字符串指针,类似于c中的char*
AnsiString是Delphi中的String类型的C++模拟;
WideString与AnsiString类似,但支持Unicode.

解决方案 »

  1.   

    WideString是Unicode字符串,用2个字节表示一个字符,而AnsiString则用1个字节表示一个字符,但是目前所用的string大部分为AnsiString,但WideString在将来的使用不可避免。
      

  2.   

    D e l p h i有三种类型的字符:
    • AnsiChar 这是标准的1字节的A N S I字符,程序员都对它比较熟悉。
    • WideChar 这是2字节的U n i c o d e字符。
    • Char 在目前相当于A n s i C h a r, 但在D e l p h i以后版本中相当于Wi d e C h a r.
    记住因为一个字符在长度上并不表示一个字节,所以不能在应用程序中对字符长度进行硬编码,
    而应该使用S i z e o f ( )函数。
    注意Sizeof()标准函数返回类型或实例的字节长度。
    ===============字符串
    字符串是代表一组字符的变量类型,每一种语言都有自己的字符串类型的存储和使用方法。
    P a s c a l类型有下列几种不同的字符串类型来满足程序的要求:
    • AnsiString 这是P a s c a l缺省的字符串类型,它由AnsiChar 字符组成,其长度没有限制,同时与
    n u l l结束的字符串相兼容。
    • ShortString 保留该类型是为了向后兼容Delphi 1.0,它的长度限制在2 5 5个字符内。
    • WideString 功能上类似于A n s i S t r i n g,但它是由Wi d e C h a r字符组成的。
    • PChar 指向n u l l结束的C h a r字符串的指针,类似于C的char * 或l p s t r类型。
    • PAnsiChar 指向n u l l结束的A n s i C h a r字符串的指针。
    • PWideChar 指向n u l l结束的Wi d e C h a r字符串的指针。
    缺省情况下,如果用如下的代码来定义字符串,编译器认为是AnsiString 字符串:
    v a r
    S:string; //编译器认为S的类型是A n s i S t r i n g
    当然,能用编译开关$ H来将s t r i n g类型定义为S h o r t S t r i n g,当$ H编译开关的值为负时, s t r i n g变量
    是S h o r t S t r i n g类型;当$ H编译开关的值为正时(缺省情况),字符串变量是A n s i S t r i n g类型。下面的代码
    演示了这种情况:
    v a r
    { $ H - }
    S1:string; //S1是S h o r t S t r i n g类型
    { $ H + }
    S2:string; //S2是A n s i S t r i n g类型
    使用$ H规则的一个例外是,如果在定义时特地指定了长度(最大在2 5 5个字符内),那么总是
    S h o r t S t r i n g:
    v a r
    S: string[63]; //63个字符的S h o r t S t r i n g字符串
    1. AnsiString类型
    A n s i S t r i n g (或长字符串)类型是在Delphi 2.0开始引入的,因为Delphi 1.0的用户特别需要一个容易
    使用而且没有2 5 5个字符限制的字符串类型,而A n s i S t r i n g正好能满足这些要求。