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 )

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值