zoukankan      html  css  js  c++  java
  • Delphi XE7中各种字符串与字符类型的内存结构

    1. ShortString 类型

    定义:type ShortString = string[255];

    内存结构与大小:ShortString 是每个字符为单字节的字符串。ShortString 的变量实际是一个指针,它指向堆中一个256字节大小的数据结构,第一个字节是字符串总字节的数目(不一定是字符数目),后面是字符的字节表示。ShortString 类型的变量最多可以容纳255个字符,超出的部分将会被丢弃。ShortString 可以存储非ASCII字符,这些字符以操作系统的 codepage 存储,比如简体中文的 cp936 操作系统,非ASCII里面的字符是以GB2312(cp936)编码方式存储的。

    2. AnsiString 类型

    定义:type AnsiString = { built-in type };

    内存结构与大小:AnsiString 是每个字符为单字节的字符串。AnsiString 的变量实际是一个指针,它指向堆中一个数据结构,假设有一个ans变量是AnsiString 类型,第ans-4到ans-1这4个字节是字符串总字节的数目(不一定是字符数目),第ans-8到ans-5这4个字节是字符串被引用的次数,第ans-10到ans-9这2个字节是一个字符有几个字节(查看内存发现貌似一直都是1),第ans-12到ans-11这2个字节是code page代码页,后面(即ans指向的地址处)是字符的字节表示。AnsiString 类型的变量最多可以容纳的字符与可用内存大小有关。

    2. String 类型

    定义:type String = UnicodeString;
    String 是UnicodeString的别名,但是当以String[200]类似的形式使用时是ShortString类型。
  • 相关阅读:
    iOSraywenderlich翻译使用MapKit叠加图层
    IOSTableView学习V2.0
    html的<input>标签常用属性
    SQLSqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]
    PhoneGapV1.0
    IOSPlistV1.0
    IOS使用 UITableView 创建表格应用演练(1)——一个简单的表格应用V3.0
    IOSTableView学习V4.0
    IOS从plist文件加载并显示数据
    学习思路
  • 原文地址:https://www.cnblogs.com/xxNote/p/6089871.html
Copyright © 2011-2022 走看看