AnsiString()与StrPas()的区别

解决方案 »

  1.   

    AnsiString 类型又称为长字符串,它可以动态分配,并且长度只受内存限制。它使用8 位ANSI 字符。
    长串变量是一个指针,占据4 个字节的内存。当变量为空时(也就是长度为0 的字符串),指针为nil,
    此时,它不需要额外的内存;当变量为非空时,它指向一个动态分配的内存块,内存块存储字符串的值:
    一个32 位的长度指示器,一个32 位的引用计数器。它的内存在堆中分配,但它的管理是完全自动的,
    不需要自己编写代码。
    因为长串变量是指针,所以,两个或更多的变量可以引用同一个值,而不必使用额外的内存。编译器利
    用这一点节省资源和进行快速赋值。只要一个长串变量被销毁或赋给一个新值,原来的串(变量的前一
    个值)引用计数减1,而新的值(如果有的话)引用计数加1。若引用计数为0,它的内存被释放。这个
    过程被称为reference-counting。当使用字符串索引改变其中的一个字符时,若字符串的引用计数大于1,
    将生成串的一个拷贝,这被称为copy-on-write 机制。
      

  2.   

    StrPas 函数 将以NULL结束的字符串转换为PASCAL类的字符串